summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2011-09-30 22:08:48 +0000
committerRichard Mudgett <rmudgett@digium.com>2011-09-30 22:08:48 +0000
commitcb0a0a9f2930bec6f1714544bbe33e9987a74e0c (patch)
tree6d967590a035789c1a9d96741f26fcd03f12985b
parent260648043b9a5dec35c00cd3698a0fadc41e1cb6 (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.c7
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);