]> git.ipfire.org Git - thirdparty/asterisk.git/commit
CHANNEL(peer), chan_iax2, res_fax, SNMP agent: Fix deadlock from reaching across...
authorRichard Mudgett <rmudgett@digium.com>
Tue, 20 Jan 2015 16:46:16 +0000 (16:46 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 20 Jan 2015 16:46:16 +0000 (16:46 +0000)
commit6af6a216a1fcfb1dcefbfa6dc657d3781f3a24d9
tree19b0d1bba2257ce3f7acf523dba76c14fa3c6a7c
parent072db5e1b9201b3d7219a12ed559a9e856d535b6
CHANNEL(peer), chan_iax2, res_fax, SNMP agent: Fix deadlock from reaching across a bridge.

Calling ast_channel_bridge_peer() cannot be done while holding any channel
locks.  The reported issue hit the deadlock in chan_iax2, but an audit of
the ast_channel_bridge_peer() calls found three more locations where the
same deadlock can occur.

* Made CHANNEL(peer), res_fax, and the SNMP agent not call
ast_channel_bridge_peer() with any channel locked.  For CHANNEL(peer) I
had to rework the logic to not hold the channel lock.

* Made chan_iax2 no longer call ast_channel_bridge_peer().  It was done
for legacy reasons that no longer apply.

* Removed the iax.conf forcejitterbuffer option.  It is now always enabled
when the jitterbuffer option is enabled.  If you put a jitter buffer on a
channel it will be on the channel.

ASTERISK-24600 #close
Reported by: Jeff Collell

Review: https://reviewboard.asterisk.org/r/4342/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430817 65c4cc65-6c06-0410-ace0-fbb531ad65f3
UPGRADE.txt
channels/chan_iax2.c
configs/samples/iax.conf.sample
funcs/func_channel.c
res/res_fax.c
res/snmp/agent.c