Hi all

I've been playing with the pipelimit module, and found several problems with the pl_set_pipe command. See the details below:

VERSION 3.3.4

1.- If the command is sent with a wrong number of arguments kamailio crashes. For instance:

kamctl fifo pl_set_pipe global RED (note the absence of the last argument)

Core was generated by `./kamailio -f /usr/local/kamailio/etc/kamailio/kamailio.cfg -E -dddd -w /var/ru'.
Program terminated with signal 11, Segmentation fault.
#0 mi_set_pipe (cmd_tree=<value optimized out>, param=<value optimized out>) at pl_ht.c:554 554 if ( !node->value.s || !node->value.len || strno2int(&node->value,&limit)<0)
(gdb) bt
#0 mi_set_pipe (cmd_tree=<value optimized out>, param=<value optimized out>) at pl_ht.c:554 #1 0x00007f8b7cd00c72 in run_mi_cmd (fifo_stream=0x2843870) at ../../lib/kmi/mi.h:77
#2  mi_fifo_server (fifo_stream=0x2843870) at fifo_fnc.c:509
#3 0x00007f8b7cd02b10 in fifo_process (rank=<value optimized out>) at mi_fifo.c:247
#4  0x00007f8b7cd02eaf in mi_child_init (rank=0) at mi_fifo.c:211
#5 0x00000000004e23c9 in init_mod_child (m=0x7f8b7cf18d78, rank=0) at sr_module.c:893 #6 0x00000000004e233c in init_mod_child (m=0x7f8b7cf18f50, rank=0) at sr_module.c:890 #7 0x00000000004e233c in init_mod_child (m=0x7f8b7cf19100, rank=0) at sr_module.c:890 #8 0x00000000004e233c in init_mod_child (m=0x7f8b7cf19750, rank=0) at sr_module.c:890 #9 0x00000000004e233c in init_mod_child (m=0x7f8b7cf1ac08, rank=0) at sr_module.c:890 #10 0x00000000004e233c in init_mod_child (m=0x7f8b7cf1b230, rank=0) at sr_module.c:890 #11 0x00000000004e233c in init_mod_child (m=0x7f8b7cf1b5a0, rank=0) at sr_module.c:890 #12 0x00000000004e233c in init_mod_child (m=0x7f8b7cf1bb48, rank=0) at sr_module.c:890 #13 0x00000000004e233c in init_mod_child (m=0x7f8b7cf1ecf0, rank=0) at sr_module.c:890 #14 0x00000000004e233c in init_mod_child (m=0x7f8b7cf1f140, rank=0) at sr_module.c:890 #15 0x00000000004e233c in init_mod_child (m=0x7f8b7cf1f3e8, rank=0) at sr_module.c:890 #16 0x00000000004e233c in init_mod_child (m=0x7f8b7cf1fe68, rank=0) at sr_module.c:890 #17 0x00000000004e233c in init_mod_child (m=0x7f8b7cf20130, rank=0) at sr_module.c:890 #18 0x00000000004e233c in init_mod_child (m=0x7f8b7cf20430, rank=0) at sr_module.c:890 #19 0x00000000004e233c in init_mod_child (m=0x7f8b7cf20b68, rank=0) at sr_module.c:890 #20 0x00000000004e233c in init_mod_child (m=0x7f8b7cf20fa0, rank=0) at sr_module.c:890 #21 0x00000000004e233c in init_mod_child (m=0x7f8b7cf211f8, rank=0) at sr_module.c:890 #22 0x00000000004e233c in init_mod_child (m=0x7f8b7cf215d8, rank=0) at sr_module.c:890 #23 0x00000000004e233c in init_mod_child (m=0x7f8b7cf21940, rank=0) at sr_module.c:890 #24 0x00000000004e233c in init_mod_child (m=0x7f8b7cf21fb8, rank=0) at sr_module.c:890 #25 0x00000000004e233c in init_mod_child (m=0x7f8b7cf222b8, rank=0) at sr_module.c:890 #26 0x00000000004e233c in init_mod_child (m=0x7f8b7cf22500, rank=0) at sr_module.c:890 #27 0x00000000004e233c in init_mod_child (m=0x7f8b7cf226e8, rank=0) at sr_module.c:890 #28 0x00000000004e233c in init_mod_child (m=0x7f8b7cf22bf8, rank=0) at sr_module.c:890 #29 0x00000000004e233c in init_mod_child (m=0x7f8b7cf230e8, rank=0) at sr_module.c:890 #30 0x00000000004e233c in init_mod_child (m=0x7f8b7cf236e0, rank=0) at sr_module.c:890 #31 0x00000000004e233c in init_mod_child (m=0x7f8b7cf23bd8, rank=0) at sr_module.c:890
#32 0x0000000000465db5 in main_loop () at main.c:1710
#33 0x0000000000467de6 in main (argc=0, argv=0xe) at main.c:2546


2.- If the number of arguments is correct kamailio gets blocked, from that point on, no other request is processed:
1(23742) DEBUG: mi_fifo [mi_parser.c:84]: end of fifo input tree
DEBUG: mi_fifo [fifo_fnc.c:507]: done parsing the mi tree
DEBUG: pipelimit [pl_ht.c:557]: set_pipe: global:1:30

Nothing happens after this message, kamailio blocks and no further request is processed.


VERSION 4.0

1.- Same as in 3.3.4
2.- Same as in 3.3.4
3.- Using RPC commands. Kamalio correctly complains about the incorrect number of arguments, but still blocks when setting up new params in a pipe.
    3.1 /kamcmd pl.set_pipe s:106433 RED
error: 400 - error at parameter 2: expected integer type but end of packet encountered
    3.2 kamcmd pl.set_pipe s:106433 RED 50 => kamailio blocks


Regards

Javi





_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to