]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_fax: Fix latent bug exposed by ASTERISK-24841 changes. 00/3700/1
authorRichard Mudgett <rmudgett@digium.com>
Fri, 17 Apr 2015 23:05:37 +0000 (18:05 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 25 Aug 2016 23:22:21 +0000 (18:22 -0500)
commit258705cfcd9608964da464af9c9bc495ba6e06dc
treecec2d5ad1fb63d3388222ef5322dcadb2fa1a83c
parentdd600f60be854fc8d2cc4408e03761318c16d698
res_fax: Fix latent bug exposed by ASTERISK-24841 changes.

Three fax related tests started failing as a result of changes made for
ASTERISK-24841:
tests/fax/pjsip/gateway_t38_g711
tests/fax/sip/gateway_mix1
tests/fax/sip/gateway_mix3

Historically, ast_channel_make_compatible() did nothing if the channels
were already "compatible" even if they had a sub-optimal translation path
already setup.  With the changes from ASTERISK-24841 this is no longer
true in order to allow the best translation paths to always be picked.  In
res_fax.c:fax_gateway_framehook() code manually setup the channels to go
through slin and then called ast_channel_make_compatible().  With the
previous version of ast_channel_make_compatible() this was always a
no-operation.

* Remove call to ast_channel_make_compatible() in fax_gateway_framehook()
that now undoes what was just setup when the framehook is attached.

* Fixed locking around saving the channel formats in
fax_gateway_framehook() to ensure that the formats that are saved are
consistent.

* Fix copy pasta errors in fax_gateway_framehook() that confuses read and
write when dealing with saved channel formats.

ASTERISK-24841
Reported by: Matt Jordan

Backported from v13 revision 82bc0fd3ade77394e13062b6097732c224e77eaa
mainly to get the diff between v11 and v13 smaller but this also fixes
a potential deadlock when dealing with the chan and the peer together.

Change-Id: I6fda0877104a370af586a5e8cf9e161a484da78d
res/res_fax.c