diff options
author | dvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-17 22:07:36 +0000 |
---|---|---|
committer | dvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-17 22:07:36 +0000 |
commit | 7ee3a37c582457dcee6b8be72886abebc44c47c0 (patch) | |
tree | e799f3af71c00215d518fd0134724cc4107cde9b /channels/chan_iax2.c | |
parent | a74f96ca08035c72edf00111c040f990454fde34 (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: http://svn.digium.com/svn/asterisk/trunk@207225 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_iax2.c')
-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; |