diff options
author | Joshua Colp <jcolp@digium.com> | 2008-04-14 15:36:02 +0000 |
---|---|---|
committer | Joshua Colp <jcolp@digium.com> | 2008-04-14 15:36:02 +0000 |
commit | 6fad8249f55683f22fe50bfd87ef56ad69fb92c1 (patch) | |
tree | 8f1a5acffdca0a994f46937e1e2661b81deac8fc /channels | |
parent | 9ddc843fbeecfcfbe2ff54d916fe9d18de2a77c7 (diff) |
During hangup it is possible for p->chan or p->owner to be NULL, so just return what the channel is bridged to instead of what they are *really* bridged to. Thanks Matt Nicholson!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114109 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_local.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_local.c b/channels/chan_local.c index e79c82184..d371a0f75 100644 --- a/channels/chan_local.c +++ b/channels/chan_local.c @@ -183,8 +183,11 @@ static struct ast_channel *local_bridgedchannel(struct ast_channel *chan, struct bridged = (bridge == p->owner ? p->chan : p->owner); /* Now see if the opposite channel is bridged to anything */ - if (bridged->_bridge) + if (!bridged) { + bridged = bridge; + } else if (bridged->_bridge) { bridged = bridged->_bridge; + } } ast_mutex_unlock(&p->lock); |