]> git.ipfire.org Git - thirdparty/asterisk.git/commit
Fix potential deadlock between masquerade and chan_local.
authorRichard Mudgett <rmudgett@digium.com>
Mon, 4 Jun 2012 18:41:18 +0000 (18:41 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 4 Jun 2012 18:41:18 +0000 (18:41 +0000)
commit0db93278008f50d07b9133a887fcc199c21b0b6c
treecaa28574e8281f6ac7b7b8fd8ff9ae422caa181d
parent81e1b363780bd4825581eac2403c3b7e48103d01
Fix potential deadlock between masquerade and chan_local.

* Restructure ast_do_masquerade() to not hold channel locks while it calls
ast_indicate().

* Simplify many calls to ast_do_masquerade() since it will never return a
failure now.  If it does fail internally because a channel driver callback
operation failed, the only thing ast_do_masquerade() can do is generate a
warning message about strange things may happen and press on.

* Fixed the call to ast_bridged_channel() in ast_do_masquerade().  This
change fixes half of the deadlock reported in ASTERISK-19801 between
masquerades and chan_iax.

(closes issue ASTERISK-19537)
Reported by: rmudgett
Tested by: rmudgett

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@368405 65c4cc65-6c06-0410-ace0-fbb531ad65f3
main/channel.c