]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix another bug specifically related to asynchronous call origination. Once the
authorRussell Bryant <russell@russellbryant.com>
Mon, 10 Mar 2008 20:17:11 +0000 (20:17 +0000)
committerRussell Bryant <russell@russellbryant.com>
Mon, 10 Mar 2008 20:17:11 +0000 (20:17 +0000)
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/branches/1.4@107161 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/pbx.c

index 728e40170ba29adeaed6d3600d1eb9663366911f..669ca7d71c4dfa15fc5ba2aeb0973a5c0301f091 100644 (file)
@@ -5027,9 +5027,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 {
                                if (option_verbose > 3)