- 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 */
if (RelativeTo == RTL_REGISTRY_USER)
{
/* Get the path */
/* Get the user key path */
Status = RtlFormatCurrentUserKeyPath(&KeyPath);
if (!NT_SUCCESS(Status)) return(Status);
/* Append it */
Status = RtlAppendUnicodeStringToString(&KeyName, &KeyPath);
RtlFreeUnicodeString (&KeyPath);
/* Check if it worked */
if (NT_SUCCESS(Status))
{
/* 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
{