From: Richard Mudgett Date: Thu, 12 Jul 2012 20:15:42 +0000 (+0000) Subject: Add missing ast_hangup() calls on some analog exception paths. X-Git-Tag: 1.8.16.0-rc1~17 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d8ff69cb1b761e0ca78ba2815eeb6fd095fe9a3a;p=thirdparty%2Fasterisk.git Add missing ast_hangup() calls on some analog exception paths. Make starting analog_ss_thread() or __analog_ss_thread() failure paths hangup the channel. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@370017 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index b3dfaafe08..a26a068230 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -11621,6 +11621,7 @@ static struct dahdi_pvt *handle_init_event(struct dahdi_pvt *i, int event) ast_log(LOG_WARNING, "Cannot allocate new structure on channel %d\n", i->channel); } else if (ast_pthread_create_detached(&threadid, NULL, analog_ss_thread, chan)) { ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel); + ast_hangup(chan); } } break; @@ -11888,6 +11889,7 @@ static void *do_monitor(void *data) res = ast_pthread_create_detached(&threadid, NULL, analog_ss_thread, chan); if (res) { ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel); + ast_hangup(chan); } else { i->dtmfcid_holdoff_state = 1; } diff --git a/channels/sig_analog.c b/channels/sig_analog.c index 0a336b313d..555997dec9 100644 --- a/channels/sig_analog.c +++ b/channels/sig_analog.c @@ -3831,6 +3831,7 @@ void *analog_handle_init_event(struct analog_pvt *i, int event) ast_log(LOG_WARNING, "Cannot allocate new structure on channel %d\n", i->channel); } else if (ast_pthread_create_detached(&threadid, NULL, __analog_ss_thread, i)) { ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel); + ast_hangup(chan); } } break; @@ -3855,6 +3856,7 @@ void *analog_handle_init_event(struct analog_pvt *i, int event) ast_log(LOG_WARNING, "Cannot allocate new structure on channel %d\n", i->channel); } else if (ast_pthread_create_detached(&threadid, NULL, __analog_ss_thread, i)) { ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel); + ast_hangup(chan); } } break;