Author: dchapyshev
Date: Mon Apr 13 19:49:54 2009
New Revision: 40483

URL: http://svn.reactos.org/svn/reactos?rev=40483&view=rev
Log:
- Fix 3 winetests for CreateProcessA/W

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/procsup.c?rev=40483&r1=40482&r2=40483&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/process/procsup.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/process/procsup.c [iso-8859-1] Mon Apr 13 
19:49:54 2009
@@ -718,6 +718,38 @@
         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.

Reply via email to