Merged revisions 107161 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Mon, 10 Mar 2008 20:17:37 +0000 (20:17 +0000)
committerRussell Bryant <russell@russellbryant.com>
Mon, 10 Mar 2008 20:17:37 +0000 (20:17 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r107161 | russell | 2008-03-10 15:17:11 -0500 (Mon, 10 Mar 2008) | 8 lines

Fix another bug specifically related to asynchronous call origination.  Once the
PBX is started on the channel using ast_pbx_start(), then the ownership of the
channel has been passed on to another thread.  We can no longer access it in this
code.  If the channel gets hung up very quickly, it is possible that we could
access a channel that has been free'd.

(inspired by BE-386)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@107162 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/pbx.c

index 9050c55..2e3260a 100644 (file)
@@ -6545,9 +6545,9 @@ int ast_pbx_outgoing_exten(const char *type, int format, void *data, int timeout
                                                        ast_channel_unlock(chan);
                                                }
                                                ast_hangup(chan);
-                                               chan = NULL;
                                                res = -1;
                                        }
+                                       chan = NULL;
                                }
                        } else {
                                ast_verb(4, "Channel %s was never answered.\n", chan->name);