Using the (g)lobal flag together with avp_db_load() crashes my OpenSER
in a reproducible manner. The config works if I don't use the g flag and
I tested it on CVS current. I try to give as much information as
possible here:
from openser.cfg:
...
# check for Call Forwarding Unconditional (CFU)
if (avp_db_load("$ruri/username", "$avp(s:cfu)")) {
avp_print();
# replace R-URI with CFU URI, g will fetch all CFU URIs -->
request will fork
avp_pushto("$ru", "$avp(s:cfu)/g");
# avp_pushto("$ru", "$avp(s:cfu)"); --> this works
sl_send_reply("181", "Call is being forwarded (CFU)");
route(ROUTE_DEFAULT_RELAY);
exit;
}
...
from openser.log:
...
openser[31411]: INFO:avpops:print_avp: p=0xb5770dc8, flags=103
openser[31411]: INFO: name=<cfu>
openser[31411]: INFO: val_str=<sip:vm-admin@xx.xx.xx.xx
/ 25>
openser[31411]: INFO:avpops:print_avp: p=0xb5770d98, flags=2
openser[31411]: INFO: id=<34>
openser[31411]: INFO: val_str=<sip:cschlatt@unc.edu / 20>
openser[31403]: child process 31411 exited by a signal 11
...
from core dump:
#0 ops_pushto_avp (msg=0x8123bb0, dst=0x8123130, src=0x8123160) at
avpops_impl.c:1111
1111 flags = avp->flags;
Thanks
Christian
Attachments:
- smime.p7s
(application/x-pkcs7-signature — 1.9 KB)