summaryrefslogtreecommitdiff
path: root/include/asterisk/channel.h
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2016-08-23 10:39:01 -0500
committerRichard Mudgett <rmudgett@digium.com>2016-08-25 17:11:51 -0500
commit277a2d667a51b4f683392304f0d1be47b53b1db2 (patch)
tree8992b77e91930103ae3dd9531e4729afaa76392f /include/asterisk/channel.h
parentedca14c8a50e940e8d3be470d136cafa406dd596 (diff)
res_fax: Fix deadlock setting FAXMODE channel variable.
ASTERISK-25980 added the FAXMODE channel variable to res_fax.c. Unfortunately, it also introduced a deadlock potential because set_channel_variables() which sets FAXMODE can be called during a masquerade. The ast_channel_get_t38_state() which gets the value used to set FAXMODE cannot be called with the channel locked. As a result, local channels can deadlock because of how they must acquire the locks necessary to operate. The intent of FAXMODE is for dialplan to know how a fax was transferred after the fax completes. However, the previous patch sets FAXMODE to the channel's current T.38 state AFTER the fax has completed and where T.38 may have already disconnected. * Set FAXMODE based upon T.38 negotiations exchanged either with the fax applications or the fax framehooks. ASTERISK-26203 Reported by: Etienne Lessard ASTERISK-24822 Reported by: David Brillert ASTERISK-22732 Reported by: Richard Mudgett Change-Id: Id525747254b64c1efe8b1b5973d52ff9719c2ae1
Diffstat (limited to 'include/asterisk/channel.h')
0 files changed, 0 insertions, 0 deletions