[asterisk-bugs] [Asterisk 0019403]: [patch] Call pickup deadlock in ast_do_masquerade

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Jun 3 04:53:05 CDT 2011


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=19403 
====================================================================== 
Reported By:                one47
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   19403
Category:                   Core/Channels
Reproducibility:            always
Severity:                   block
Priority:                   normal
Status:                     new
Asterisk Version:           1.6.2.18 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2011-06-03 04:03 CDT
Last Modified:              2011-06-03 04:53 CDT
====================================================================== 
Summary:                    [patch] Call pickup deadlock in ast_do_masquerade
Description: 
Using *8 call pickup can readily cause a deadlock where ast_do_masquerade()
has a channel locked, when calling ast_channel_free() - ast_channel_free
requests the channels (channel list) lock, which breaks locking order
requirements and caused a deadlock.
====================================================================== 

---------------------------------------------------------------------- 
 (0135666) one47 (reporter) - 2011-06-03 04:53
 https://issues.asterisk.org/view.php?id=19403#c135666 
---------------------------------------------------------------------- 
I considered that patch, but it is not quite so simple.

You are unlocking the channels list, which means that 'c' might not be
valid any more. It might have been removed from the channel list or
modified while you were unlocked.

IMHO If you unlock channels, you must start the search from the beginning
when you re-lock. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-06-03 04:53 one47          Note Added: 0135666                          
======================================================================




More information about the asterisk-bugs mailing list