From 6c27fa103896779169c4c8d5d4a6c1f344c651d7 Mon Sep 17 00:00:00 2001 From: Andrew Nguyen Date: Mon, 18 May 2009 05:07:04 -0500 Subject: [PATCH] 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 b10d08a21f8..8f486e0c048 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 7cc58416b26..6aac6151b0b 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) -- 2.11.4.GIT