From 37064511e491b8270a15a3ef9bb9352156d03542 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 31 May 2011 09:53:39 -0500 Subject: [PATCH] fix bug from the *cough* FRICKING MAILING LIST WHERE IT SHOULD NOT HAVE BEEN REPORTED FROM *cough* --- libs/esl/src/esl_event.c | 7 +++++++ src/switch_channel.c | 8 ++++++-- src/switch_event.c | 9 ++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/libs/esl/src/esl_event.c b/libs/esl/src/esl_event.c index 28723928e3..7aa12a8cd6 100644 --- a/libs/esl/src/esl_event.c +++ b/libs/esl/src/esl_event.c @@ -478,6 +478,13 @@ static esl_status_t esl_event_base_add_header(esl_event_t *event, esl_stack_t st if (!header) { + + if (esl_strlen_zero(data)) { + esl_event_del_header(event, header_name); + FREE(data); + goto end; + } + if (esl_test_flag(event, ESL_EF_UNIQ_HEADERS)) { esl_event_del_header(event, header_name); } diff --git a/src/switch_channel.c b/src/switch_channel.c index d31b75e478..ebddafb236 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -1032,7 +1032,9 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_var_check(switch_cha switch_mutex_lock(channel->profile_mutex); if (channel->variables && !zstr(varname)) { - if (!zstr(value)) { + if (zstr(value)) { + switch_event_del_header(channel->variables, varname); + } else { int ok = 1; if (var_check) { @@ -1061,7 +1063,9 @@ SWITCH_DECLARE(switch_status_t) switch_channel_add_variable_var_check(switch_cha switch_mutex_lock(channel->profile_mutex); if (channel->variables && !zstr(varname)) { - if (!zstr(value)) { + if (zstr(value)) { + switch_event_del_header(channel->variables, varname); + } else { int ok = 1; if (var_check) { diff --git a/src/switch_event.c b/src/switch_event.c index f362bb112b..b1f5762887 100644 --- a/src/switch_event.c +++ b/src/switch_event.c @@ -916,7 +916,7 @@ static switch_status_t switch_event_base_add_header(switch_event_t *event, switc } header_name = real_header_name; } - + if (index_ptr || (stack & SWITCH_STACK_PUSH) || (stack & SWITCH_STACK_UNSHIFT)) { if (!(header = switch_event_get_header_ptr(event, header_name)) && index_ptr) { @@ -970,6 +970,13 @@ static switch_status_t switch_event_base_add_header(switch_event_t *event, switc if (!header) { + + if (zstr(data)) { + switch_event_del_header(event, header_name); + FREE(data); + goto end; + } + if (switch_test_flag(event, EF_UNIQ_HEADERS)) { switch_event_del_header(event, header_name); }