- Fall back to the default user key if RtlFormatCurrentUserKeyPath fails (perhaps we are in a system process)

svn path=/trunk/; revision=46578
This commit is contained in:
Cameron Gutman 2010-03-30 03:26:35 +00:00
parent 98782624bf
commit c0add4aee8

View file

@ -474,13 +474,23 @@ RtlpGetRegistryHandle(IN ULONG RelativeTo,
/* Check if we need the current user key */ /* Check if we need the current user key */
if (RelativeTo == RTL_REGISTRY_USER) if (RelativeTo == RTL_REGISTRY_USER)
{ {
/* Get the path */ /* Get the user key path */
Status = RtlFormatCurrentUserKeyPath(&KeyPath); Status = RtlFormatCurrentUserKeyPath(&KeyPath);
if (!NT_SUCCESS(Status)) return(Status);
/* Append it */ /* Check if it worked */
Status = RtlAppendUnicodeStringToString(&KeyName, &KeyPath); if (NT_SUCCESS(Status))
RtlFreeUnicodeString (&KeyPath); {
/* Append the user key path */
Status = RtlAppendUnicodeStringToString(&KeyName, &KeyPath);
/* Free the user key path */
RtlFreeUnicodeString (&KeyPath);
}
else
{
/* It didn't work so fall back to the default user key */
Status = RtlAppendUnicodeToString(&KeyName, RtlpRegPaths[RTL_REGISTRY_USER]);
}
} }
else else
{ {