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
Show replies by date