[asterisk-bugs] [Asterisk 0014623]: [patch] Race condition between bridge and channel masquerading
Asterisk Bug Tracker
noreply at bugs.digium.com
Wed Mar 11 16:42:59 CDT 2009
A NOTE has been added to this issue.
======================================================================
http://bugs.digium.com/view.php?id=14623
======================================================================
Reported By: guillecabeza
Assigned To: russell
======================================================================
Project: Asterisk
Issue ID: 14623
Category: Core/Channels
Reproducibility: sometimes
Severity: crash
Priority: normal
Status: assigned
Asterisk Version: SVN
Regression: No
SVN Branch (only for SVN checkouts, not tarball releases): trunk
SVN Revision (number only!): 180032
Request Review:
======================================================================
Date Submitted: 2009-03-08 16:07 CDT
Last Modified: 2009-03-11 16:42 CDT
======================================================================
Summary: [patch] Race condition between bridge and channel
masquerading
Description:
The bridge checks for zombieness
/* Stop if we're a zombie or need a soft hangup */
if (ast_test_flag(c0, AST_FLAG_ZOMBIE) || ast_check_hangup_locked(c0)
||
ast_test_flag(c1, AST_FLAG_ZOMBIE) || ast_check_hangup_locked(c1))
{
To see if some of the channels is going through a masquerading, but non
atomically, access to channel member variables happens a few lines later
if (!ast_strlen_zero(pbx_builtin_getvar_helper(c0, "BRIDGEPEER")))
pbx_builtin_setvar_helper(c0, "BRIDGEPEER", c1->name);
Without locking on those acceses. That causes random crashes when the
memory is touched or free'd later.
======================================================================
----------------------------------------------------------------------
(0101592) svnbot (reporter) - 2009-03-11 16:42
http://bugs.digium.com/view.php?id=14623#c101592
----------------------------------------------------------------------
Repository: asterisk
Revision: 181423
U branches/1.4/main/channel.c
------------------------------------------------------------------------
r181423 | russell | 2009-03-11 16:42:59 -0500 (Wed, 11 Mar 2009) | 9 lines
Make code that updates BRIDGEPEER variable thread-safe.
It is not safe to read the name field of an ast_channel without the
channel
locked. This patch fixes some places in channel.c where this was being
done,
and lead to crashes related to masquerades.
(closes issue http://bugs.digium.com/view.php?id=14623)
Reported by: guillecabeza
------------------------------------------------------------------------
http://svn.digium.com/view/asterisk?view=rev&revision=181423
Issue History
Date Modified Username Field Change
======================================================================
2009-03-11 16:42 svnbot Checkin
2009-03-11 16:42 svnbot Note Added: 0101592
======================================================================
More information about the asterisk-bugs
mailing list