diff --git a/src/switch_core_session.c b/src/switch_core_session.c index 1ebc81488f..a34826aa99 100644 --- a/src/switch_core_session.c +++ b/src/switch_core_session.c @@ -79,6 +79,8 @@ SWITCH_DECLARE(void) switch_core_session_hupall_matching_var(const char *var_nam void *val; switch_core_session_t *session; + if (!var_val) return; + switch_mutex_lock(runtime.throttle_mutex); for (hi = switch_hash_first(NULL, session_manager.session_table); hi; hi = switch_hash_next(hi)) { switch_hash_this(hi, NULL, NULL, &val); @@ -86,7 +88,7 @@ SWITCH_DECLARE(void) switch_core_session_hupall_matching_var(const char *var_nam const char *this_val; session = (switch_core_session_t *) val; switch_core_session_read_lock(session); - if ((this_val = switch_channel_get_variable(session->channel, var_name)) && && var_val && (!strcmp(this_val, var_val))) { + if ((this_val = switch_channel_get_variable(session->channel, var_name)) && (!strcmp(this_val, var_val))) { switch_channel_hangup(switch_core_session_get_channel(session), cause); } switch_core_session_rwunlock(session);