[Core] Fix a false-positive memory leak detected by scan-build in switch_channel_set_variable_strip_quotes_var_check()

This commit is contained in:
Andrey Volk 2021-04-05 23:23:37 +03:00
parent c58b659f3f
commit b9fdf00f6f

View File

@ -1511,11 +1511,12 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_strip_quotes_var_che
int ok = 1; int ok = 1;
char *t = (char *)value; char *t = (char *)value;
char *r = (char *)value; char *r = (char *)value;
char *tmp = NULL;
if (t && *t == '"') { if (t && *t == '"') {
t++; t++;
if (end_of(t) == '"') { if (end_of(t) == '"') {
r = strdup(t); r = tmp = strdup(t);
switch_assert(r); switch_assert(r);
end_of(r) = '\0'; end_of(r) = '\0';
} }
@ -1530,7 +1531,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_strip_quotes_var_che
switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_CRIT, "Invalid data (${%s} contains a variable)\n", varname); switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_CRIT, "Invalid data (${%s} contains a variable)\n", varname);
} }
if (r != value) free(r); switch_safe_free(tmp);
} }
status = SWITCH_STATUS_SUCCESS; status = SWITCH_STATUS_SUCCESS;
} }