[asterisk-bugs] [Asterisk 0015098]: [patch] ast_channel_free might double unlock channels lock

Asterisk Bug Tracker noreply at bugs.digium.com
Wed May 13 14:50:10 CDT 2009


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=15098 
====================================================================== 
Reported By:                tim_ringenbach
Assigned To:                mmichelson
====================================================================== 
Project:                    Asterisk
Issue ID:                   15098
Category:                   Channels/General
Reproducibility:            have not tried
Severity:                   minor
Priority:                   normal
Status:                     closed
Asterisk Version:           1.4.24 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
Resolution:                 fixed
Fixed in Version:           
====================================================================== 
Date Submitted:             2009-05-13 12:54 CDT
Last Modified:              2009-05-13 14:50 CDT
====================================================================== 
Summary:                    [patch] ast_channel_free might double unlock
channels lock
Description: 
ast_channel_free() might unlock the channels lock twice, once in the "if
(!AST_LIST_REMOVE(&channels, chan, chan_list))" block and once more at the
end.

I haven't actually run into this happening in the wild (that I know of
anyway), I just noticed it in the code.
====================================================================== 

---------------------------------------------------------------------- 
 (0104703) svnbot (reporter) - 2009-05-13 14:50
 https://issues.asterisk.org/view.php?id=15098#c104703 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 194358

_U  branches/1.6.0/
U   branches/1.6.0/main/channel.c

------------------------------------------------------------------------
r194358 | mmichelson | 2009-05-13 14:50:10 -0500 (Wed, 13 May 2009) | 25
lines

Recorded merge of revisions 194357 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
  r194357 | mmichelson | 2009-05-13 14:42:51 -0500 (Wed, 13 May 2009) | 18
lines
  
  Blocked revisions 194356 via svnmerge
  
  ........
    r194356 | mmichelson | 2009-05-13 14:41:44 -0500 (Wed, 13 May 2009) |
13 lines
    
    Remove an extraneous unlocking operation from ast_channel_free.
    
    In the case that we could not remove the desired channel from the
    list of channels, there was an extra call to unlock the channel list.
    Since we unlock the list later on in the function anyway, this results
    in the list being unlocked twice yet only being locked once.
    
    (closes issue https://issues.asterisk.org/view.php?id=15098)
    Reported by: tim_ringenbach
    Patches:
          remove_extra_unlock.diff uploaded by tim (license 540)
  ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=194358 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-05-13 14:50 svnbot         Checkin                                      
2009-05-13 14:50 svnbot         Note Added: 0104703                          
======================================================================




More information about the asterisk-bugs mailing list