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