From: Matthew Jordan Date: Fri, 23 Aug 2013 22:12:57 +0000 (+0000) Subject: Fix channel reference leak in Originated channels X-Git-Tag: 13.0.0-beta1~1193 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f4bf1823e9e7a3ac87d89b09f86f6b6a621ca433;p=thirdparty%2Fasterisk.git Fix channel reference leak in Originated channels When originating channels, ast_pbx_outgoing_* caused the dialed channel reference to be bumped twice. Ostensibly, this routine is bumping the channel lifetime such that the channel doesn't get nuked in between locks/unlocks; however, since the routine should return the dialed channel with its reference bumped, it only needs to do this one time. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397606 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/pbx.c b/main/pbx.c index 27a586ef91..0b970bb136 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -10101,8 +10101,7 @@ static int pbx_outgoing_attempt(const char *type, struct ast_format_cap *cap, co /* Wait for dialing to complete */ if (channel || synchronous) { - if (channel) { - ast_channel_ref(*channel); + if (channel && *channel) { ast_channel_unlock(*channel); } while (!outgoing->dialed) {