From 97286e10cd4f8b8f9f14ee02f6ba051ebc04a2ea Mon Sep 17 00:00:00 2001 From: William King Date: Sat, 18 May 2013 17:00:41 -0700 Subject: [PATCH] Possible leak if someone were to try and add extra headers to a channel that had either an inbound info on that session or the session were to be deflected. I don't see a way that these extra headers could be added outside of a C module subscribing to the session states, but just to make sure I'm adding these so that just like other extra header locations it's cleaned up. --- src/mod/endpoints/mod_sofia/mod_sofia.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index a53f1d5d10..4a0d72fcff 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -2276,6 +2276,8 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), TAG_IF(pl, SIPTAG_PAYLOAD_STR(pl)), TAG_END()); + + switch_safe_free(headers); } else { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "%s send_info is not supported.\n", switch_channel_get_name(channel)); } @@ -2605,6 +2607,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi msg->string_reply = "no reply"; } switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_BLIND_TRANSFER); + switch_safe_free(extra_headers); } break;