Francois Gouget : shell32: Fix a buffer overflow in CommandLineToArgvW().
Alexandre Julliard
julliard at winehq.org
Mon Nov 12 14:14:39 CST 2012
Module: wine
Branch: master
Commit: 3b6b2107e2648b562c7266b17c66ab263c374c31
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3b6b2107e2648b562c7266b17c66ab263c374c31
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Sat Nov 10 01:00:54 2012 +0100
shell32: Fix a buffer overflow in CommandLineToArgvW().
---
dlls/shell32/shell32_main.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c
index 7648dbb..1507d4a 100644
--- a/dlls/shell32/shell32_main.c
+++ b/dlls/shell32/shell32_main.c
@@ -227,15 +227,20 @@ LPWSTR* WINAPI CommandLineToArgvW(LPCWSTR lpCmdline, int* numargs)
if (*s)
s++;
}
- /* close the argument */
+ /* close the executable path */
*d++=0;
/* skip to the first argument and initialize it if any */
while (*s==' ' || *s=='\t')
s++;
- if (*s)
- argv[argc++]=d;
+ if (!*s)
+ {
+ /* There are no parameters so we are all done */
+ *numargs=argc;
+ return argv;
+ }
/* Split and copy the remaining arguments */
+ argv[argc++]=d;
qcount=bcount=0;
while (*s)
{
More information about the wine-cvs
mailing list