Author: tfaber
Date: Sun May 20 14:06:09 2012
New Revision: 56643
URL:
http://svn.reactos.org/svn/reactos?rev=56643&view=rev
Log:
[KERNEL32]
- Swap GetFullPathName success/failure cases in BasePushProcessParameters. Fixes
kernel32:GetModuleFileName test.
See issue #6786 for more details.
Modified:
trunk/reactos/dll/win32/kernel32/client/path.c
trunk/reactos/dll/win32/kernel32/client/proc.c
Modified: trunk/reactos/dll/win32/kernel32/client/path.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/path.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/path.c [iso-8859-1] Sun May 20 14:06:09 2012
@@ -307,7 +307,7 @@
}
break;
- /* Add the current applicaiton path */
+ /* Add the current application path */
case BaseSearchPathApp:
if ((AppName) && (AppNameEnd))
{
Modified: trunk/reactos/dll/win32/kernel32/client/proc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/proc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/proc.c [iso-8859-1] Sun May 20 14:06:09 2012
@@ -778,6 +778,21 @@
if ((Size) && (Size <= (MAX_PATH + 4)))
{
/* Get the DLL Path */
+ DllPathString = BaseComputeProcessDllPath(FullPath, lpEnvironment);
+ if (!DllPathString)
+ {
+ /* Fail */
+ SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ return FALSE;
+ }
+
+ /* Initialize Strings */
+ RtlInitUnicodeString(&DllPath, DllPathString);
+ RtlInitUnicodeString(&ImageName, FullPath);
+ }
+ else
+ {
+ /* Couldn't get the path name. Just take the original path */
DllPathString = BaseComputeProcessDllPath((LPWSTR)ApplicationPathName,
lpEnvironment);
if (!DllPathString)
@@ -790,21 +805,6 @@
/* Initialize Strings */
RtlInitUnicodeString(&DllPath, DllPathString);
RtlInitUnicodeString(&ImageName, ApplicationPathName);
- }
- else
- {
- /* Get the DLL Path */
- DllPathString = BaseComputeProcessDllPath(FullPath, lpEnvironment);
- if (!DllPathString)
- {
- /* Fail */
- SetLastError(ERROR_NOT_ENOUGH_MEMORY);
- return FALSE;
- }
-
- /* Initialize Strings */
- RtlInitUnicodeString(&DllPath, DllPathString);
- RtlInitUnicodeString(&ImageName, FullPath);
}
/* Initialize Strings */
@@ -1656,7 +1656,7 @@
/* Someone beat us to it, use their data instead */
StartupInfo = BaseAnsiStartupInfo;
Status = STATUS_SUCCESS;
-
+
/* We're going to free our own stuff, but not raise */
RtlFreeAnsiString(&TitleString);
}