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);
}
/*