Francois Gouget : testbot/testagentd: Fix the buffer reallocation in vformat_msg() on Windows.

Alexandre Julliard julliard at winehq.org
Wed Apr 16 12:11:07 CDT 2014


Module: tools
Branch: master
Commit: 8c824018012b516a30a0094ee781a49ec3b67297
URL:    http://source.winehq.org/git/tools.git/?a=commit;h=8c824018012b516a30a0094ee781a49ec3b67297

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Wed Apr 16 18:34:09 2014 +0200

testbot/testagentd: Fix the buffer reallocation in vformat_msg() on Windows.

On Windows vsnprintf() returns -1 if the buffer is too small, which we didn't detect because len was unsigned.

---

 testbot/src/testagentd/testagentd.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/testbot/src/testagentd/testagentd.c b/testbot/src/testagentd/testagentd.c
index 2aec9e9..4bda532 100644
--- a/testbot/src/testagentd/testagentd.c
+++ b/testbot/src/testagentd/testagentd.c
@@ -136,9 +136,9 @@ static int broken = 0;
 /* If true, then the server should exit */
 static int quit = 0;
 
-static char* vformat_msg(char** buf, unsigned* size, const char* format, va_list valist)
+static char* vformat_msg(char** buf, int* size, const char* format, va_list valist)
 {
-    unsigned len;
+    int len;
     va_list args;
     len = 1;
     do
@@ -161,7 +161,7 @@ static char* vformat_msg(char** buf, unsigned* size, const char* format, va_list
     return *buf;
 }
 
-static char* format_msg(char** buf, unsigned* size, const char* format, ...)
+static char* format_msg(char** buf, int* size, const char* format, ...)
 {
     va_list valist;
     va_start(valist, format);
@@ -172,7 +172,7 @@ static char* format_msg(char** buf, unsigned* size, const char* format, ...)
 
 /* This is a message which indicates the reason for the status */
 static char* status_msg = NULL;
-static unsigned status_size = 0;
+static int status_size = 0;
 static void vset_status_msg(const char* format, va_list valist)
 {
     vformat_msg(&status_msg, &status_size, format, valist);
@@ -937,7 +937,7 @@ static void do_getproperties(SOCKET client)
 {
     const char* arch;
     char* buf = NULL;
-    unsigned size = 0;
+    int size = 0;
 
     if (!expect_list_size(client, 0))
     {




More information about the wine-cvs mailing list