From: Michael Jerris Date: Mon, 28 Apr 2014 13:54:20 +0000 (-0400) Subject: check return value of switch_vasprintf X-Git-Tag: v1.5.12~146 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=60bc7dae9fbe95090338d22805f9ce28b8c2cc03;p=thirdparty%2Ffreeswitch.git check return value of switch_vasprintf --- diff --git a/src/switch_caller.c b/src/switch_caller.c index d9f6e46a02..c36f599d93 100644 --- a/src/switch_caller.c +++ b/src/switch_caller.c @@ -517,20 +517,17 @@ SWITCH_DECLARE(void) switch_caller_extension_add_application_printf(switch_core_ char *data = NULL; va_start(ap, fmt); - switch_vasprintf(&data, fmt, ap); - va_end(ap); - - if (!data) { - return; - } - - if (strstr(data, "\\'")) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "App not added, Invalid character sequence in data string [%s]\n", data); - } else { - switch_caller_extension_add_application(session, caller_extension, application_name, data); + if ( switch_vasprintf(&data, fmt, ap) != -1 ) { + if (strstr(data, "\\'")) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "App not added, Invalid character sequence in data string [%s]\n", + data); + } else { + switch_caller_extension_add_application(session, caller_extension, application_name, data); + } } + va_end(ap); - free(data); + switch_safe_free(data); }