aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2009-04-23 19:16:32 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2009-04-23 19:16:32 +0000
commit4f4ad924b7064e150ea3c6434b01632838212b45 (patch)
tree415ac81a852afcf4619d60ff60f98d35c0c4c0bb /channels
parent07673363039c64a157fa0b6b84fc67ae36deeea7 (diff)
Merged revisions 190287 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r190287 | file | 2009-04-23 16:15:30 -0300 (Thu, 23 Apr 2009) | 13 lines Merged revisions 190286 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r190286 | file | 2009-04-23 16:13:18 -0300 (Thu, 23 Apr 2009) | 6 lines Fix a bug in chan_local glare hangup detection. If both sides of a Local channel were hung up at around the same time it was possible for one thread to destroy the local private structure and have the other thread immediately try to remove the already freed structure from the local channel list. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@190288 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_local.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/channels/chan_local.c b/channels/chan_local.c
index 3200ec036..284b8bc40 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -586,13 +586,10 @@ static int local_hangup(struct ast_channel *ast)
let local_queue do it. */
if (glaredetect)
ast_set_flag(p, LOCAL_CANCEL_QUEUE);
- ast_mutex_unlock(&p->lock);
/* Remove from list */
AST_LIST_LOCK(&locals);
AST_LIST_REMOVE(&locals, p, list);
AST_LIST_UNLOCK(&locals);
- /* Grab / release lock just in case */
- ast_mutex_lock(&p->lock);
ast_mutex_unlock(&p->lock);
/* And destroy */
if (!glaredetect) {