From d956ecb96ea823d907490e64d1b9bccae9727b80 Mon Sep 17 00:00:00 2001 From: Jonathan Rose Date: Thu, 17 Mar 2011 19:05:42 +0000 Subject: [PATCH] Merged revisions 311197 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r311197 | jrose | 2011-03-17 14:03:34 -0500 (Thu, 17 Mar 2011) | 11 lines This fixes a nasty chanspy bug which was causing a channel leak every time a spied on channel made a call. In addition to the above, it makes certain channel destruction occurs so that applications don't get stuck waiting for datastore destruction while monitored by chanspy. (closes issue #18742) Reported by: jkister Tested by: jkister, jcovert, jrose Review: http://reviewboard.digium.internal/r/106/ ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@311198 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_chanspy.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c index 274bb22029..994a03a183 100644 --- a/apps/app_chanspy.c +++ b/apps/app_chanspy.c @@ -710,6 +710,7 @@ static struct ast_autochan *next_channel(struct ast_channel_iterator *iter, struct ast_autochan *autochan, struct ast_channel *chan) { struct ast_channel *next; + struct ast_autochan *autochan_store; const size_t pseudo_len = strlen("DAHDI/pseudo"); if (!iter) { @@ -727,7 +728,10 @@ redo: goto redo; } - return ast_autochan_setup(next); + autochan_store = ast_autochan_setup(next); + ast_channel_unref(next); + + return autochan_store; } static int common_exec(struct ast_channel *chan, struct ast_flags *flags,