res_fax.c: Fix deadlock in fax_gateway_indicate_t38().
authorRichard Mudgett <rmudgett@digium.com>
Mon, 22 Aug 2016 17:31:24 +0000 (12:31 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 25 Aug 2016 22:11:51 +0000 (17:11 -0500)
commitedca14c8a50e940e8d3be470d136cafa406dd596
treecbe4d63c453027fcc9a025f9a2caff1cc062e176
parent141cd42880b374ea03035dd5776f1e4b4fc92fe6
res_fax.c: Fix deadlock in fax_gateway_indicate_t38().

fax_gateway_indicate_t38() calls ast_indicate_data() which cannot be
called with any channel locks already held.  A deadlock can happen if the
function is operating on a local channel.

* Made fax_gateway_indicate_t38() unlock the channel before calling
ast_indicate_data() since fax_gateway_indicate_t38() is always called with
the channel locked.

* Made fax_gateway_indicate_t38() return void since nothing cared about
its return value.

ASTERISK-26203
Reported by: Etienne Lessard

ASTERISK-24822
Reported by: David Brillert

ASTERISK-22732
Reported by: Richard Mudgett

Change-Id: I701ff2d26c5fc23e0d5a48a3fd98759a9fd09407
res/res_fax.c