From b9fdf00f6f464c6c76b8739ccbf1d18f10409199 Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Mon, 5 Apr 2021 23:23:37 +0300 Subject: [PATCH] [Core] Fix a false-positive memory leak detected by scan-build in switch_channel_set_variable_strip_quotes_var_check() --- src/switch_channel.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/switch_channel.c b/src/switch_channel.c index 9ce2fdc52e..8aa36aec88 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -1511,11 +1511,12 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_strip_quotes_var_che int ok = 1; char *t = (char *)value; char *r = (char *)value; + char *tmp = NULL; if (t && *t == '"') { t++; if (end_of(t) == '"') { - r = strdup(t); + r = tmp = strdup(t); switch_assert(r); 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); } - if (r != value) free(r); + switch_safe_free(tmp); } status = SWITCH_STATUS_SUCCESS; }