From 1db4c5dc67e6754bad0bee3a442d639ecd80c97f Mon Sep 17 00:00:00 2001
From: Marcus Meissner <marcus@jet.franken.de>
Date: Wed, 28 Jan 2009 23:40:56 +0100
Subject: [PATCH] xcopy: Handle return from vsnprintfW (Coverity).

---
 programs/xcopy/xcopy.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/programs/xcopy/xcopy.c b/programs/xcopy/xcopy.c
index e89c404b2c2..eaff10cdc0a 100644
--- a/programs/xcopy/xcopy.c
+++ b/programs/xcopy/xcopy.c
@@ -984,7 +984,8 @@ int XCOPY_wprintf(const WCHAR *format, ...) {
 #define MAX_WRITECONSOLE_SIZE 65535
 
     va_list parms;
-    DWORD   len, nOut;
+    DWORD   nOut;
+    int len;
     DWORD   res = 0;
 
     /*
@@ -1003,6 +1004,10 @@ int XCOPY_wprintf(const WCHAR *format, ...) {
     va_start(parms, format);
     len = vsnprintfW(output_bufW, MAX_WRITECONSOLE_SIZE/sizeof(WCHAR), format, parms);
     va_end(parms);
+    if (len < 0) {
+      WINE_FIXME("String too long.\n");
+      return 0;
+    }
 
     /* Try to write as unicode all the time we think its a console */
     if (toConsole) {
-- 
GitLab