[asterisk-commits] sgriepentrog: branch 12 r429826 - /branches/12/main/bridge_basic.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Dec 19 11:25:59 CST 2014


Author: sgriepentrog
Date: Fri Dec 19 11:25:54 2014
New Revision: 429826

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=429826
Log:
bridge: avoid leaking channel during blond transfer

After a blond transfer (start attended and hang up)
to a destination that also hangs up without answer,
the Local;1 channel was leaked and would show up on
core show channels.  This was happening because the
attended state blond_nonfinal_enter() resetting the
props->transfer_target to null while releasing it's
own reference, which would later prevent props from
releasing another reference during destruction. The
change made here is simply to not assign the target
to NULL.

ASTERISK-24513 #close
Reported by: Mark Michelson
Review: https://reviewboard.asterisk.org/r/4262/


Modified:
    branches/12/main/bridge_basic.c

Modified: branches/12/main/bridge_basic.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/main/bridge_basic.c?view=diff&rev=429826&r1=429825&r2=429826
==============================================================================
--- branches/12/main/bridge_basic.c (original)
+++ branches/12/main/bridge_basic.c Fri Dec 19 11:25:54 2014
@@ -2261,7 +2261,8 @@
 	props->superstate = SUPERSTATE_RECALL;
 	props->recall_target = ast_channel_ref(props->transfer_target);
 	res = blond_enter(props);
-	props->transfer_target = ast_channel_unref(props->transfer_target);
+	/* transfer properties holds a separate reference to transfer_target, don't set it to NULL here */
+	ast_channel_unref(props->transfer_target);
 	return res;
 }
 




More information about the asterisk-commits mailing list