Bug #6003 - Don't free the channel structure until after having sent the manager...
authorBJ Weschke <bweschke@btwtech.com>
Thu, 15 Dec 2005 02:49:17 +0000 (02:49 +0000)
committerBJ Weschke <bweschke@btwtech.com>
Thu, 15 Dec 2005 02:49:17 +0000 (02:49 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7481 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channel.c

index e321a36..e573e85 100644 (file)
--- a/channel.c
+++ b/channel.c
@@ -3055,7 +3055,6 @@ int ast_do_masquerade(struct ast_channel *original)
        if (ast_test_flag(clone, AST_FLAG_ZOMBIE)) {
                ast_log(LOG_DEBUG, "Destroying channel clone '%s'\n", clone->name);
                ast_mutex_unlock(&clone->lock);
-               ast_channel_free(clone);
                manager_event(EVENT_FLAG_CALL, "Hangup", 
                        "Channel: %s\r\n"
                        "Uniqueid: %s\r\n"
@@ -3066,6 +3065,7 @@ int ast_do_masquerade(struct ast_channel *original)
                        clone->hangupcause,
                        ast_cause2str(clone->hangupcause)
                        );
+               ast_channel_free(clone);
        } else {
                struct ast_frame null_frame = { AST_FRAME_NULL, };
                ast_log(LOG_DEBUG, "Released clone lock on '%s'\n", clone->name);