- Fix 3 winetests for CreateProcessA/W

svn path=/trunk/; revision=40483
This commit is contained in:
Dmitry Chapyshev 2009-04-13 15:49:54 +00:00
parent 41b8520ae8
commit 298432c4ed

View file

@ -718,6 +718,38 @@ CreateProcessInternalW(HANDLE hToken,
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.