diff options
author | David Vossel <dvossel@digium.com> | 2009-07-17 22:07:36 +0000 |
---|---|---|
committer | David Vossel <dvossel@digium.com> | 2009-07-17 22:07:36 +0000 |
commit | 090066be3b010c2cb3a7df2f59ab2fb0cb3401ea (patch) | |
tree | e799f3af71c00215d518fd0134724cc4107cde9b /channels | |
parent | aa379bb74191b5fef7e3c193d80236da92e7e991 (diff) |
fixes an error in r203638 CEL commit
(closes issue #15525)
Reported by: elguero
Patches:
iax2-double-unlock.patch uploaded by elguero (license 37)
15525.diff uploaded by dvossel (license 671)
Tested by: dvossel
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@207225 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_iax2.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 07883f3bb..d0f5952d4 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -8523,8 +8523,7 @@ static void set_hangup_source_and_cause(int callno, unsigned char causecode) do { if (ast_channel_trylock(iaxs[callno]->owner)) { DEADLOCK_AVOIDANCE(&iaxsl[callno]); - } - else { + } else { locked = 1; owner = iaxs[callno]->owner; } @@ -8537,13 +8536,11 @@ static void set_hangup_source_and_cause(int callno, unsigned char causecode) } ast_set_hangupsource(iaxs[callno]->owner, iaxs[callno]->owner->name, 0); ast_channel_unlock(owner); - } - if (locked) { + } else if(locked) { ast_channel_unlock(owner); } } - static int socket_process(struct iax2_thread *thread) { struct sockaddr_in sin; |