Module: sip-router Branch: 3.2 Commit: 11ca33836fdd33d7c3d36c4f1acc6c6782edfb5d URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=11ca33836fdd33d7c3d36c4f1acc6c6782edfb5d
Author: Marius Zbihlei <[email protected]> Committer: Marius Zbihlei <[email protected]> Date: Wed Apr 25 14:54:31 2012 +0300 modules/sipcapture: Fixed crash in case contact was "*" --- modules/sipcapture/sipcapture.c | 25 ++++++++++++++++++------- 1 files changed, 18 insertions(+), 7 deletions(-) diff --git a/modules/sipcapture/sipcapture.c b/modules/sipcapture/sipcapture.c index 50f384e..bbebd28 100644 --- a/modules/sipcapture/sipcapture.c +++ b/modules/sipcapture/sipcapture.c @@ -187,7 +187,7 @@ static str type_column = str_init("type"); static str node_column = str_init("node"); static str msg_column = str_init("msg"); static str capture_node = str_init("homer01"); - +static str star_contact = str_init("*"); int raw_sock_desc = -1; /* raw socket used for ip packets */ unsigned int raw_sock_children = 1; @@ -1136,12 +1136,23 @@ static int sip_capture(struct sip_msg *msg, char *s1, char *s2) cb = (contact_body_t*)msg->contact->parsed; - if(cb && cb->contacts) { - if(parse_uri( cb->contacts->uri.s, cb->contacts->uri.len, &contact)<0){ - LOG(L_ERR, "ERROR: do_action: bad contact dropping"" packet\n"); - return -1; - } - } + if(cb) { + if (cb->contacts) { + if(parse_uri( cb->contacts->uri.s, cb->contacts->uri.len, &contact)<0){ + LOG(L_ERR, "ERROR: do_action: bad contact dropping"" packet\n"); + return -1; + } + } else { + if(cb->star){ /* in the case Contact is "*" */ + memset(&contact, 0, sizeof(contact)); + contact.user.s = star_contact.s; + contact.user.len = star_contact.len; + } else { + LOG(L_NOTICE,"Invalid contact\n"); + memset(&contact, 0, sizeof(contact)); + } + } + } } /* get header x-cid: */ _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
