diff options
author | Richard Mudgett <rmudgett@digium.com> | 2011-09-30 22:08:48 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2011-09-30 22:08:48 +0000 |
commit | cb0a0a9f2930bec6f1714544bbe33e9987a74e0c (patch) | |
tree | 6d967590a035789c1a9d96741f26fcd03f12985b | |
parent | 260648043b9a5dec35c00cd3698a0fadc41e1cb6 (diff) |
Merged revisions 338801 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10
................
r338801 | rmudgett | 2011-09-30 17:06:48 -0500 (Fri, 30 Sep 2011) | 19 lines
Merged revisions 338800 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
........
r338800 | rmudgett | 2011-09-30 17:05:10 -0500 (Fri, 30 Sep 2011) | 12 lines
Fix segfault in analog_ss_thread() not checking ast_read() for NULL.
NOTE: The problem was reported against v1.6.2. It is unlikely to ever
happen on v1.8 and above since chan_dahdi.c:analog_ss_thread() is unlikely
to be used. The version in sig_analog.c has largely replaced it.
(closes issue ASTERISK-18648)
Reported by: Stephan Bosch
Patches:
jira_asterisk_18648_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: Stephan Bosch
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@338802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | channels/chan_dahdi.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index b26881c43..11a7bda8b 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -10695,9 +10695,14 @@ static void *analog_ss_thread(void *data) ast_log(LOG_WARNING, "DTMFCID timed out waiting for ring. " "Exiting simple switch\n"); ast_hangup(chan); - return NULL; + goto quit; } f = ast_read(chan); + if (!f) { + /* Hangup received waiting for DTMFCID. Exiting simple switch. */ + ast_hangup(chan); + goto quit; + } if (f->frametype == AST_FRAME_DTMF) { dtmfbuf[k++] = f->subclass.integer; ast_debug(1, "CID got digit '%c'\n", f->subclass.integer); |