- Revert r40529

svn path=/trunk/; revision=40532
This commit is contained in:
Dmitry Chapyshev 2009-04-15 17:18:20 +00:00
parent 32414442e2
commit 1487d68971

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.