From 57bb6ea0615078bdb4d20aefc6a93ff968d48ef4 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Tue, 16 Dec 2008 21:13:53 +0000 Subject: [PATCH] Merged revisions 164877 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r164877 | russell | 2008-12-16 15:12:49 -0600 (Tue, 16 Dec 2008) | 14 lines Merged revisions 164876 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r164876 | russell | 2008-12-16 15:10:44 -0600 (Tue, 16 Dec 2008) | 6 lines Do not dereference the channel if AST_PBX_KEEPALIVE has been returned. This is a bug I noticed while looking at the code for app_macro. This return code means that another thread has assumed ownership of the channel and it can no longer be touched. (I hate this return code with a passion, by the way.) ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@164879 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_macro.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/app_macro.c b/apps/app_macro.c index 8fe59634ea..c21c4190ee 100644 --- a/apps/app_macro.c +++ b/apps/app_macro.c @@ -313,8 +313,8 @@ static int _macro_exec(struct ast_channel *chan, void *data, int exclusive) case AST_PBX_KEEPALIVE: ast_debug(2, "Spawn extension (%s,%s,%d) exited KEEPALIVE in macro %s on '%s'\n", chan->context, chan->exten, chan->priority, macro, chan->name); ast_verb(2, "Spawn extension (%s, %s, %d) exited KEEPALIVE in macro '%s' on '%s'\n", chan->context, chan->exten, chan->priority, macro, chan->name); + dead = 1; goto out; - break; default: ast_debug(2, "Spawn extension (%s,%s,%d) exited non-zero on '%s' in macro '%s'\n", chan->context, chan->exten, chan->priority, chan->name, macro); ast_verb(2, "Spawn extension (%s, %s, %d) exited non-zero on '%s' in macro '%s'\n", chan->context, chan->exten, chan->priority, chan->name, macro);