From 38a0199f4197e650cdc8d310117c3c056c1ec0b5 Mon Sep 17 00:00:00 2001 From: sergey-vb Date: Thu, 28 Apr 2016 09:02:38 +0300 Subject: [PATCH 1/2] Update textops.c Fix memory leak when converting body to multipart with set_body_multipart(); --- modules/textops/textops.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/textops/textops.c b/modules/textops/textops.c index 74d7726b450..400b83622e0 100644 --- a/modules/textops/textops.c +++ b/modules/textops/textops.c @@ -1763,6 +1763,8 @@ int set_multibody_helper(struct sip_msg* msg, char* p1, char* p2, char* p3) } pkg_free(nbb); if(nc.s!=NULL) pkg_free(nc.s); + if(convert && nb.s!=NULL) pkg_free(nb.s); + if(convert && oc.s!=NULL) pkg_free(oc.s); LM_DBG("set flag FL_BODY_MULTIPART\n"); msg->msg_flags |= FL_BODY_MULTIPART; return 1; From d4764bce4c2fba9ba719a934d8098d02c53c2596 Mon Sep 17 00:00:00 2001 From: sergey-vb Date: Thu, 28 Apr 2016 09:06:17 +0300 Subject: [PATCH 2/2] Update msg_translator.c Fix memory leak when converting body to multipart with set_body_multipart(); Change log_level to info and add content type to log. --- msg_translator.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/msg_translator.c b/msg_translator.c index bc2c3b20453..5ca6f737dc7 100644 --- a/msg_translator.c +++ b/msg_translator.c @@ -1688,7 +1688,7 @@ int get_boundary(struct sip_msg* msg, str* boundary) msg->content_type->body.len); if (params.s == NULL) { - LM_ERR("Content-Type hdr has no params\n"); + LM_INFO("Content-Type hdr has no params <%.*s>\n", msg->content_type->body.len, msg->content_type->body.s); return -1; } params.len = msg->content_type->body.len - @@ -1749,7 +1749,10 @@ int check_boundaries(struct sip_msg *msg, struct dest_info *send_info) } tmp.s = buf.s; t = tmp.len = buf.len; - if(get_boundary(msg, &ob)!=0) return -1; + if(get_boundary(msg, &ob)!=0) { + if(tmp.s) pkg_free(tmp.s); + return -1; + } if(str_append(&ob, &bsuffix, &b)!=0) { LM_ERR("Can't append suffix to boundary\n"); goto error;