From bad5964b9406e9d015bf537f4f92a2dd75229e9a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 24 Oct 2011 08:47:08 -0500 Subject: [PATCH] FS-3589 --resolve --- src/switch_core_session.c | 5 +++-- src/switch_ivr_originate.c | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/switch_core_session.c b/src/switch_core_session.c index 1d0b952fee..46bffa7df5 100644 --- a/src/switch_core_session.c +++ b/src/switch_core_session.c @@ -2077,7 +2077,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_application_get_flag switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "%s Channel is hungup and application '%s' does not have the zombie_exec flag.\n", switch_channel_get_name(session->channel), app); - return SWITCH_STATUS_IGNORE; + + switch_goto_status(SWITCH_STATUS_IGNORE, done); } if (!arg && strstr(app, "::")) { @@ -2087,7 +2088,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_application_get_flag if ((application_interface = switch_loadable_module_get_application_interface(app)) == 0) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Invalid Application %s\n", app); switch_channel_hangup(session->channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); - return SWITCH_STATUS_FALSE; + switch_goto_status(SWITCH_STATUS_FALSE, done); } if (!application_interface->application_function) { diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index 1bf38b4775..4e6258ce8f 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -231,7 +231,9 @@ static void *SWITCH_THREAD_FUNC collect_thread_run(switch_thread_t *thread, void wbreak: switch_core_session_rwunlock(collect->session); + UNPROTECT_INTERFACE(application_interface); + return NULL; }