Nikolay Sivov : menubuilder: Use va_start/va_end around vsnprintf() on every call.

Alexandre Julliard julliard at winehq.org
Thu Feb 16 13:10:45 CST 2012


Module: wine
Branch: master
Commit: 4db6d184b3c7b0980af8f7d7be194f69f9f51b87
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4db6d184b3c7b0980af8f7d7be194f69f9f51b87

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Feb 16 03:28:29 2012 +0300

menubuilder: Use va_start/va_end around vsnprintf() on every call.

---

 programs/winemenubuilder/winemenubuilder.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index c07507d..dc5fd29 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -236,13 +236,14 @@ static char* heap_printf(const char *format, ...)
     char *buffer, *ret;
     int n;
 
-    va_start(args, format);
     while (1)
     {
         buffer = HeapAlloc(GetProcessHeap(), 0, size);
         if (buffer == NULL)
             break;
+        va_start(args, format);
         n = vsnprintf(buffer, size, format, args);
+        va_end(args);
         if (n == -1)
             size *= 2;
         else if (n >= size)
@@ -251,7 +252,7 @@ static char* heap_printf(const char *format, ...)
             break;
         HeapFree(GetProcessHeap(), 0, buffer);
     }
-    va_end(args);
+
     if (!buffer) return NULL;
     ret = HeapReAlloc(GetProcessHeap(), 0, buffer, strlen(buffer) + 1 );
     if (!ret) ret = buffer;




More information about the wine-cvs mailing list