Module: kamailio Branch: master Commit: d029de6380f8e30e0c82435b820744c21a5fbc78 URL: https://github.com/kamailio/kamailio/commit/d029de6380f8e30e0c82435b820744c2...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2025-02-14T12:40:57+01:00
tsilo: free duplicated ruri and contact on error cases
---
Modified: src/modules/tsilo/tsilo.c
---
Diff: https://github.com/kamailio/kamailio/commit/d029de6380f8e30e0c82435b820744c2... Patch: https://github.com/kamailio/kamailio/commit/d029de6380f8e30e0c82435b820744c2...
---
diff --git a/src/modules/tsilo/tsilo.c b/src/modules/tsilo/tsilo.c index 6af49d59dd3..4e3c3501359 100644 --- a/src/modules/tsilo/tsilo.c +++ b/src/modules/tsilo/tsilo.c @@ -642,27 +642,33 @@ static int w_ts_append_by_contact3(
if(ts_check_uri(&ruri) < 0) { LM_ERR("failed to parse R-URI.\n"); + pkg_free(ruri.s); return -1; }
/* parse Contact header */ if(fixup_get_svalue(_msg, (gparam_t *)_contact, &contact_fixed) != 0) { LM_ERR("failed to convert contact parameter\n"); + pkg_free(ruri.s); return -1; }
if(contact_fixed.s == NULL || contact_fixed.len <= 0) { LM_ERR("invalid contact parameter value\n"); + pkg_free(ruri.s); return -1; }
if(pkg_str_dup(&contact, &contact_fixed) < 0) { LM_ERR("failed to copy r-uri parameter\n"); + pkg_free(ruri.s); return -1; }
if(ts_check_uri(&contact) < 0) { LM_ERR("failed to parse Contact parameter.\n"); + pkg_free(ruri.s); + pkg_free(contact.s); return -1; }
@@ -687,16 +693,22 @@ static int ki_ts_append_by_contact_uri( int rc;
/* parse R-URI */ - if(ts_check_uri(_ruri) < 0) + if(ts_check_uri(_ruri) < 0) { return -1; - if(pkg_str_dup(&ruri, _ruri) < 0) + } + if(pkg_str_dup(&ruri, _ruri) < 0) { return -1; + }
/* parse Contact header */ - if(ts_check_uri(_contact) < 0) + if(ts_check_uri(_contact) < 0) { + pkg_free(ruri.s); return -1; - if(pkg_str_dup(&contact, _contact) < 0) + } + if(pkg_str_dup(&contact, _contact) < 0) { + pkg_free(ruri.s); return -1; + }
/* contact must be of syntax: sip:<user>@<host>:<port> with no parameters list */ rc = ts_append(_msg, &ruri, &contact, _table->s);