Module: wine Branch: master Commit: 6c27fa103896779169c4c8d5d4a6c1f344c651d7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6c27fa103896779169c4c8d5d4...
Author: Andrew Nguyen arethusa26@gmail.com Date: Mon May 18 05:07:04 2009 -0500
kernel32: Don't validate the command line parameter of CreateProcessW.
---
dlls/kernel32/process.c | 6 ------ dlls/kernel32/tests/process.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c index b10d08a..8f486e0 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c @@ -1787,12 +1787,6 @@ static LPWSTR get_file_name( LPCWSTR appname, LPWSTR cmdline, LPWSTR buffer, return ret; }
- if (!cmdline) - { - SetLastError( ERROR_INVALID_PARAMETER ); - return NULL; - } - /* first check for a quoted file name */
if ((cmdline[0] == '"') && ((p = strchrW( cmdline + 1, '"' )))) diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c index 7cc5841..6aac615 100644 --- a/dlls/kernel32/tests/process.c +++ b/dlls/kernel32/tests/process.c @@ -925,6 +925,16 @@ static void test_CommandLine(void) okChildStringWA("Arguments", "CommandLineW", buffer2); release_memory(); assert(DeleteFileA(resfile) != 0); + + if (0) /* Test crashes on NT-based Windows. */ + { + /* Test NULL application name and command line parameters. */ + SetLastError(0xdeadbeef); + ret = CreateProcessA(NULL, NULL, NULL, NULL, FALSE, 0L, NULL, NULL, &startup, &info); + ok(!ret, "CreateProcessA unexpectedly succeeded\n"); + ok(GetLastError() == ERROR_INVALID_PARAMETER, + "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError()); + } }
static void test_Directory(void)