[PATCH] xcopy: handle return from vsnprintfW (coverity)
Marcus Meissner
marcus at jet.franken.de
Wed Jan 28 16:40:56 CST 2009
Hi,
Coverity spotted that vsnprintfW can return negative
values. This is probably unusual, but lets check it.
Ciao, Marcus
---
programs/xcopy/xcopy.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/programs/xcopy/xcopy.c b/programs/xcopy/xcopy.c
index e89c404..eaff10c 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) {
--
1.5.6
More information about the wine-patches
mailing list