[KERNEL32]
authorThomas Faber <thomas.faber@reactos.org>
Sun, 3 Apr 2016 20:48:51 +0000 (20:48 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 3 Apr 2016 20:48:51 +0000 (20:48 +0000)
- Correctly calculate the buffer size if the PATH variable is set but empty in BasepComputeProcessPath. Yes, this is a bug in Windows.
CORE-11080 #resolve

svn path=/trunk/; revision=71097

reactos/dll/win32/kernel32/client/path.c

index 21415a5..dc3b044 100644 (file)
@@ -210,9 +210,13 @@ BasepComputeProcessPath(IN PBASE_SEARCH_PATH_TYPE PathOrder,
             }
             else
             {
-                /* Add the length of the PATH variable */
+                /* Add the length of the PATH variable unless it's empty */
                 ASSERT(!(EnvPath.Length & 1));
-                PathLengthInBytes += (EnvPath.Length + sizeof(L';'));
+                if (EnvPath.Length)
+                {
+                    /* Reserve space for the variable and a semicolon */
+                    PathLengthInBytes += (EnvPath.Length + sizeof(L';'));
+                }
             }
             break;