Skip to content
Snippets Groups Projects
user avatar
Richard Mudgett authored
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r288194 | rmudgett | 2010-09-21 19:06:21 -0500 (Tue, 21 Sep 2010) | 40 lines
  
  Merged revisions 288193 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r288193 | rmudgett | 2010-09-21 19:03:37 -0500 (Tue, 21 Sep 2010) | 33 lines
    
    Merged revisions 288192 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r288192 | rmudgett | 2010-09-21 18:55:58 -0500 (Tue, 21 Sep 2010) | 26 lines
      
      In chan_iax2.c:schedule_delivery() calls ast_bridged_channel() on an unlocked channel.
      
      Near the beginning of schedule_delivery(), ast_bridged_channel() is called
      on iaxs[fr->callno]->owner.  However, the channel is not locked, which can
      result in ast_bridged_channel() crashing should owner->tech change to a
      technology that doesn't implement bridged_channel.
      
      I also fixed the other calls to ast_bridged_channel() in chan_iax2.c since
      the owner lock was not held there either.
      
      Converted the existing channel deadlock avoidance to use
      iax2_lock_owner().  Using the new function simplified some awkward code.
      
      In the process of fixing the locking on ast_bridged_channel(), I also
      found a memory leak in socket_process() for v1.6.2 and v1.8.  The local
      struct variable ies.vars is not freed on early/abnormal function exits.
      
      (closes issue #17919)
      Reported by: rain
      Patches:
            issue17919_v1.4.patch uploaded by rmudgett (license 664)
            issue17919_w_leak_v1.6.2.patch uploaded by rmudgett (license 664)
            issue17919_w_leak_v1.8.patch uploaded by rmudgett (license 664)
      
      Review: https://reviewboard.asterisk.org/r/926/
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@288195 65c4cc65-6c06-0410-ace0-fbb531ad65f3
c5f5c241
History