From: Andrey Volk Date: Fri, 17 Jul 2020 16:38:15 +0000 (+0400) Subject: [mod_sofia] Fix potential leak of uuid in sofia_event_callback(). X-Git-Tag: v1.10.6^2~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=167ab110064f45f9a52458b2300129d6f30e773a;p=thirdparty%2Ffreeswitch.git [mod_sofia] Fix potential leak of uuid in sofia_event_callback(). --- diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 32ed268b7e..7f7b0c2b75 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2435,11 +2435,16 @@ void sofia_event_callback(nua_event_t event, switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "detaching session %s\n", sofia_private->uuid); if (!zstr(tech_pvt->call_id)) { + char *uuid = strdup(switch_core_session_get_uuid(session)); tech_pvt->sofia_private = NULL; tech_pvt->nh = NULL; sofia_set_flag(tech_pvt, TFLAG_BYE); switch_mutex_lock(profile->flag_mutex); - switch_core_hash_insert_auto_free(profile->chat_hash, tech_pvt->call_id, strdup(switch_core_session_get_uuid(session))); + + if (switch_core_hash_insert_auto_free(profile->chat_hash, tech_pvt->call_id, uuid) != SWITCH_STATUS_SUCCESS) { + switch_safe_free(uuid); + } + switch_mutex_unlock(profile->flag_mutex); nua_handle_destroy(nh); } else {