Module: kamailio Branch: master Commit: 1b0e1c3cbdd162fcd438a7d9bb412ddce73bc214 URL: https://github.com/kamailio/kamailio/commit/1b0e1c3cbdd162fcd438a7d9bb412ddce73bc214
Author: Victor Seva <linuxman...@torreviejawireless.org> Committer: Victor Seva <linuxman...@torreviejawireless.org> Date: 2017-02-22T08:14:55+01:00 pua_reginfo: fix memory leak when usrloc is DB_ONLY As release_urecord() clearly says: /*! * \brief Release urecord previously obtained through get_urecord * \warning Failing to calls this function after get_urecord will * result in a memory leak when the DB_ONLY mode is used. When * the records is later deleted, e.g. with delete_urecord, then * its not necessary, as this function already releases the record. * \param _r released record */ --- Modified: src/modules/pua_reginfo/notify.c Modified: src/modules/pua_reginfo/usrloc_cb.c --- Diff: https://github.com/kamailio/kamailio/commit/1b0e1c3cbdd162fcd438a7d9bb412ddce73bc214.diff Patch: https://github.com/kamailio/kamailio/commit/1b0e1c3cbdd162fcd438a7d9bb412ddce73bc214.patch --- diff --git a/src/modules/pua_reginfo/notify.c b/src/modules/pua_reginfo/notify.c index 317f3e8..853dbcc 100644 --- a/src/modules/pua_reginfo/notify.c +++ b/src/modules/pua_reginfo/notify.c @@ -458,7 +458,7 @@ int process_body(str notify_body, udomain_t * domain) { } } next_registration: - // if (ul_record) ul.release_urecord(ul_record); + if (ul_record) ul.release_urecord(ul_record); /* Unlock the domain for this AOR: */ if (aor_key.len > 0) ul.unlock_udomain(domain, &aor_key); diff --git a/src/modules/pua_reginfo/usrloc_cb.c b/src/modules/pua_reginfo/usrloc_cb.c index 7f84788..3e00a0e 100644 --- a/src/modules/pua_reginfo/usrloc_cb.c +++ b/src/modules/pua_reginfo/usrloc_cb.c @@ -223,7 +223,7 @@ void reginfo_usrloc_cb(ucontact_t* c, int type, void* param) { publ_info_t publ; str content_type; udomain_t * domain; - urecord_t * record; + urecord_t * record = NULL; int res; str uri = {NULL, 0}; str user = {NULL, 0}; @@ -332,6 +332,7 @@ void reginfo_usrloc_cb(ucontact_t* c, int type, void* param) { if(body->s) xmlFree(body->s); pkg_free(body); } + if(record) ul.release_urecord(record); return; } _______________________________________________ sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev