From b5b1e272661f421f335089125fead08931c75c99 Mon Sep 17 00:00:00 2001 From: Kinsey Moore <kmoore@digium.com> Date: Tue, 4 Mar 2014 15:35:49 +0000 Subject: [PATCH] rtp_engine: Clean up after a failed remote bridge Upon failure of an INVITE transaction meant to initiate a remote native bridge, rtp_engine.c would not clean up non-reference-counted bridge instance pointers leaving a dangling pointer which was being used to perform a local native bridge after the other channel had hung up. This lead to dereferencing into freed memory and plenty of AO2 errors. This change allows the remote native bridge loop to clean up properly when the bridge fails. (closes issue ASTERISK-23310) Reported by: Jeremy Laine ........ Merged revisions 409521 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@409524 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/rtp_engine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/rtp_engine.c b/main/rtp_engine.c index d88ff2f5b9..217b704c83 100644 --- a/main/rtp_engine.c +++ b/main/rtp_engine.c @@ -1399,7 +1399,7 @@ static enum ast_bridge_result remote_bridge_loop(struct ast_channel *c0, *rc = who; ast_debug(1, "Got a FRAME_CONTROL (%d) frame on channel %s\n", fr->subclass.integer, ast_channel_name(who)); res = AST_BRIDGE_COMPLETE; - goto remote_bridge_cleanup; + break; } } else { if ((fr->frametype == AST_FRAME_DTMF_BEGIN) || -- GitLab