From 7a017b5be05b8e2f2a4fa236f52cbd34c4bc3503 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Sat, 9 Oct 2021 14:20:31 +0800 Subject: [PATCH] lib/vasprintf: Shouldn't call va_end(ap) to avoid the double free Signed-off-by: Xiang Xiao Change-Id: I20e10803e7923fbbd8b5fdccca1fdb4c9d090434 --- libs/libc/stdio/lib_vasprintf.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/libs/libc/stdio/lib_vasprintf.c b/libs/libc/stdio/lib_vasprintf.c index 45101fd0ac9..fa93e2272c4 100644 --- a/libs/libc/stdio/lib_vasprintf.c +++ b/libs/libc/stdio/lib_vasprintf.c @@ -93,7 +93,6 @@ int vasprintf(FAR char **ptr, FAR const IPTR char *fmt, va_list ap) buf = (FAR char *)lib_malloc(nulloutstream.nput + 1); if (!buf) { - va_end(ap); #ifdef va_copy va_end(ap2); #endif @@ -119,8 +118,6 @@ int vasprintf(FAR char **ptr, FAR const IPTR char *fmt, va_list ap) fmt, ap); #endif - va_end(ap); - /* Return a pointer to the string to the caller. NOTE: the memstream put() * method has already added the NUL terminator to the end of the string * (not included in the nput count).