Author: dchapyshev Date: Wed Apr 15 19:32:04 2009 New Revision: 40527
URL: http://svn.reactos.org/svn/reactos?rev=40527&view=rev Log: - Revert r40484
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] Wed Apr 15 19:32:04 2009 @@ -720,12 +720,34 @@
if (lpCurrentDirectory) { - if ((GetFileAttributesW(lpCurrentDirectory) == INVALID_FILE_ATTRIBUTES) || - !(GetFileAttributesW(lpCurrentDirectory) & FILE_ATTRIBUTE_DIRECTORY)) - { + 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); }
/*