From ee95074173c138b95f49e176c6c7f671032517f3 Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Wed, 25 Apr 2007 22:34:58 +0000
Subject: [PATCH] Merged revisions 61914 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r61914 | kpfleming | 2007-04-25 17:29:53 -0500 (Wed, 25 Apr 2007) | 10 lines

Merged revisions 61913 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r61913 | kpfleming | 2007-04-25 17:24:59 -0500 (Wed, 25 Apr 2007) | 2 lines

handle a very bizarre race condition with channels being redirected before a simple switch can be started on them (issue #9286)

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@61915 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_zap.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index f401b85e27..93b01d405c 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -5744,6 +5744,15 @@ static void *ss_thread(void *data)
 	int res;
 	int index;
 
+	/* in the bizarre case where the channel has become a zombie before we
+	   even get started here, abort safely
+	*/
+	if (!p) {
+		ast_log(LOG_WARNING, "Channel became a zombie before simple switch could be started (%s)\n", chan->name);
+		ast_hangup(chan);
+		return NULL;
+	}
+
 	if (option_verbose > 2) 
 		ast_verbose( VERBOSE_PREFIX_3 "Starting simple switch on '%s'\n", chan->name);
 	index = zt_get_index(chan, p, 1);
-- 
GitLab