[sr-dev] fixup causing crash in rtpproxy-ng module
Hugh Waite
hugh.waite at crocodile-rcs.com
Tue Sep 3 18:16:09 CEST 2013
Hello,
I have discovered another crash in the mediaproxy-ng module.
The config line that causes it is:
rtpproxy_manage("fco+SP", $hdr(X-Origin-IP));
where the hdr PV holds a valid IP address.
I think this is an issue with the fixup functions, but different
functions have different ways of converting. Can someone explain which
is the current recommended format?
static cmd_export_t cmds[] = {
...
{"rtpproxy_offer", (cmd_function)rtpproxy_offer2_f, 2,
fixup_spve_spve, 0,
ANY_ROUTE},
{"rtpproxy_manage", (cmd_function)rtpproxy_manage2, 2,
fixup_spve_str, fixup_free_spve_str,
ANY_ROUTE},
...
static int
rtpproxy_offer2_f(struct sip_msg *msg, char *param1, char *param2)
{
str flags, new_ip;
get_str_fparam(&flags, msg, (fparam_t *) param1);
get_str_fparam(&new_ip, msg, (fparam_t *) param2);
return force_rtp_proxy(msg, flags.s, &new_ip, OP_OFFER);
}
static int
rtpproxy_manage2(struct sip_msg *msg, char *flags, char *ip)
{
str flag_str;
str ip_str;
fixup_get_svalue(msg, (gparam_p)flags, &flag_str);
fixup_get_svalue(msg, (gparam_p)ip, &ip_str);
return rtpproxy_manage(msg, flag_str.s, &ip_str);
}
If the function uses fixup_spve_str, should rtpproxy_manage2() be using
get_str_fparam() instead of fixup_get_svalue() for the second parameter
(or even both parameters)?
I notice that rtpproxy_offer2_f() is using get_str_fparam() for both
parameters when the fixup function is fixup_spve_spve, and there is no
fixup_free function.
Regards,
Hugh
--
Hugh Waite
Principal Design Engineer
Crocodile RCS Ltd.
More information about the sr-dev
mailing list