Author: dchapyshev
Date: Mon Apr 13 19:49:54 2009
New Revision: 40483
URL:
http://svn.reactos.org/svn/reactos?rev=40483&view=rev
Log:
- Fix 3 winetests for CreateProcessA/W
Modified:
trunk/reactos/dll/win32/kernel32/process/procsup.c
Modified: trunk/reactos/dll/win32/kernel32/process/procsup.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/process…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/process/procsup.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/process/procsup.c [iso-8859-1] Mon Apr 13 19:49:54
2009
@@ -718,6 +718,38 @@
return FALSE;
}
+ if (lpCurrentDirectory)
+ {
+ LPWSTR FilePart, Buffer = NULL;
+
+ Buffer = RtlAllocateHeap(RtlGetProcessHeap(),
+ 0,
+ (MAX_PATH + 1) * sizeof(WCHAR));
+
+ if (!Buffer)
+ {
+ SetLastErrorByStatus(STATUS_NO_MEMORY);
+ return FALSE;
+ }
+
+ if (GetFullPathNameW(lpCurrentDirectory, MAX_PATH, Buffer, &FilePart) >
MAX_PATH)
+ {
+ RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer);
+ SetLastError(ERROR_DIRECTORY);
+ return FALSE;
+ }
+
+ if ((GetFileAttributesW(Buffer) == INVALID_FILE_ATTRIBUTES) ||
+ !(GetFileAttributesW(Buffer) & FILE_ATTRIBUTE_DIRECTORY))
+ {
+ RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer);
+ SetLastError(ERROR_DIRECTORY);
+ return FALSE;
+ }
+
+ RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer);
+ }
+
/*
* We're going to modify and mask out flags and stuff in lpStartupInfo,
* so we'll use our own local copy for that.