]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_fax: Fix deadlock in ast_channel_get_t38_state(). 17/3717/1
authorRichard Mudgett <rmudgett@digium.com>
Tue, 23 Aug 2016 16:02:35 +0000 (11:02 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 25 Aug 2016 22:11:17 +0000 (17:11 -0500)
commit1a7d5989d61cc76f8423fa1f9abafc56a251f537
treec1624e63488c73011df539088c09e52f6bc3b31e
parentaaef3b71751d9418e5b11824e7f9b33da5363df6
res_fax: Fix deadlock in ast_channel_get_t38_state().

ast_channel_get_t38_state() calls ast_channel_queryoption() with
AST_OPTION_T38_STATE.  If the passed in channel is a local channel then a
deadlock can happen if a channel lock is held when called.

* Made ast_channel_get_t38_state() callers not hold a channel lock before
calling.

* Update ast_channel_get_t38_state() doxygen to note that no channel locks
can be held when calling the function.

ASTERISK-26203 #close
Reported by: Etienne Lessard

ASTERISK-24822 #close
Reported by: David Brillert

ASTERISK-22732 #close
Reported by: Richard Mudgett

Change-Id: I49fd76fa9af628b4198009b5c0b82c8b03681214
include/asterisk/channel.h
res/res_fax.c