[NTDLL/LDR]

- Use \\KnownDlls\\KnownDllPath instead of \\KnownDlls\\KnownDlls to check known dlls patch (spotted by Thomas Faber)
- Assume known dlls are in system32 if \\KnownDlls exists but KnownDllPath not

svn path=/trunk/; revision=52574
This commit is contained in:
Rafal Harabien 2011-07-08 19:42:53 +00:00
parent 820aba4e5a
commit dbe1886186

View file

@ -1624,16 +1624,10 @@ LdrpInitializeProcess(IN PCONTEXT Context,
&ObjectAttributes); &ObjectAttributes);
/* Check if it exists */ /* Check if it exists */
if (!NT_SUCCESS(Status)) if (NT_SUCCESS(Status))
{
/* It doesn't, so assume System32 */
LdrpKnownDllObjectDirectory = NULL;
RtlInitUnicodeString(&LdrpKnownDllPath, StringBuffer);
LdrpKnownDllPath.Length -= sizeof(WCHAR);
}
else
{ {
/* Open the Known DLLs Path */ /* Open the Known DLLs Path */
RtlInitUnicodeString(&KnownDllString, L"KnownDllPath");
InitializeObjectAttributes(&ObjectAttributes, InitializeObjectAttributes(&ObjectAttributes,
&KnownDllString, &KnownDllString,
OBJ_CASE_INSENSITIVE, OBJ_CASE_INSENSITIVE,
@ -1658,6 +1652,15 @@ LdrpInitializeProcess(IN PCONTEXT Context,
} }
} }
/* Check if we failed */
if (!NT_SUCCESS(Status))
{
/* Aassume System32 */
LdrpKnownDllObjectDirectory = NULL;
RtlInitUnicodeString(&LdrpKnownDllPath, StringBuffer);
LdrpKnownDllPath.Length -= sizeof(WCHAR);
}
/* If we have process parameters, get the default path and current path */ /* If we have process parameters, get the default path and current path */
if (ProcessParameters) if (ProcessParameters)
{ {