[asterisk-commits] dvossel: branch 1.6.2 r264332 - in /branches/1.6.2: ./ channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed May 19 14:25:25 CDT 2010


Author: dvossel
Date: Wed May 19 14:25:20 2010
New Revision: 264332

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=264332
Log:
Merged revisions 264331 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

........
  r264331 | dvossel | 2010-05-19 14:21:04 -0500 (Wed, 19 May 2010) | 13 lines
  
  fixes crash in check_rtp_timeout
  
  During deadlock avoidance the sip dialog pvt is locked and
  unlocked.  When this occurs we have no guarantee the pvt's owner
  is still valid.  We were trying to access the pvt's owner after
  this without checking to see if it still existed first. 
  
  (closes issue #17271)
  Reported by: under
  Patches:
        check_rtp_timeout.diff uploaded by under (license 914)
  Tested by: dvossel
........

Modified:
    branches/1.6.2/   (props changed)
    branches/1.6.2/channels/chan_sip.c

Propchange: branches/1.6.2/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.2/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/channels/chan_sip.c?view=diff&rev=264332&r1=264331&r2=264332
==============================================================================
--- branches/1.6.2/channels/chan_sip.c (original)
+++ branches/1.6.2/channels/chan_sip.c Wed May 19 14:25:20 2010
@@ -22474,6 +22474,9 @@
 					sip_pvt_unlock(dialog);
 					usleep(1);
 					sip_pvt_lock(dialog);
+				}
+				if (!dialog->owner) {
+					return; /* channel hangup can occur during deadlock avoidance. */
 				}
 				ast_log(LOG_NOTICE, "Disconnecting call '%s' for lack of RTP activity in %ld seconds\n",
 					dialog->owner->name, (long) (t - dialog->lastrtprx));




More information about the asterisk-commits mailing list