[asterisk-commits] coreyfarrell: branch 1.8 r419440 - /branches/1.8/channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jul 24 12:55:52 CDT 2014


Author: coreyfarrell
Date: Thu Jul 24 12:55:48 2014
New Revision: 419440

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=419440
Log:
chan_sip: sip_subscribe_mwi_destroy should not call sip_destroy

sip_subscribe_mwi_destroy calls sip_destroy on the reference counted
mwi->call.  This results in the fields of mwi->call being freed, but
mwi->call itself it leaked.  If other code is still using mwi->call
it can cause problems.  This change uses dialog_unref instead, to
balance the ref provided by sip_alloc().

ASTERISK-24087 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/3834/

Modified:
    branches/1.8/channels/chan_sip.c

Modified: branches/1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/chan_sip.c?view=diff&rev=419440&r1=419439&r2=419440
==============================================================================
--- branches/1.8/channels/chan_sip.c (original)
+++ branches/1.8/channels/chan_sip.c Thu Jul 24 12:55:48 2014
@@ -6108,9 +6108,9 @@
 {
 	if (mwi->call) {
 		mwi->call->mwi = NULL;
-		sip_destroy(mwi->call);
-	}
-	
+		mwi->call = dialog_unref(mwi->call, "sip_subscription_mwi destruction");
+	}
+
 	AST_SCHED_DEL(sched, mwi->resub);
 	ast_string_field_free_memory(mwi);
 	ast_free(mwi);




More information about the asterisk-commits mailing list