mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
- Fix 3 winetests for CreateProcessA/W
svn path=/trunk/; revision=40483
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user