From 167ab110064f45f9a52458b2300129d6f30e773a Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Fri, 17 Jul 2020 20:38:15 +0400 Subject: [PATCH] [mod_sofia] Fix potential leak of uuid in sofia_event_callback(). --- src/mod/endpoints/mod_sofia/sofia.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 {