- Don't leak registry lock in failure branches of CmpParseKey. Spotted by Timo.

svn path=/trunk/; revision=36602
This commit is contained in:
Aleksey Bragin 2008-09-30 18:44:22 +00:00
parent 509b66cef5
commit f45ca4adda

View file

@ -1044,7 +1044,11 @@ CmpParseKey(IN PVOID ParseObject,
if (!TotalRemainingSubkeys) ASSERTMSG("Caching not implemented", FALSE); if (!TotalRemainingSubkeys) ASSERTMSG("Caching not implemented", FALSE);
/* Don't do anything if we're being deleted */ /* Don't do anything if we're being deleted */
if (Kcb->Delete) return STATUS_OBJECT_NAME_NOT_FOUND; if (Kcb->Delete)
{
Status = STATUS_OBJECT_NAME_NOT_FOUND;
goto Quickie;
}
/* Check if this is a symlink */ /* Check if this is a symlink */
if (Kcb->Flags & KEY_SYM_LINK) if (Kcb->Flags & KEY_SYM_LINK)
@ -1092,7 +1096,11 @@ CmpParseKey(IN PVOID ParseObject,
/* Get the key node */ /* Get the key node */
Node = (PCM_KEY_NODE)HvGetCell(Hive, Cell); Node = (PCM_KEY_NODE)HvGetCell(Hive, Cell);
if (!Node) return STATUS_INSUFFICIENT_RESOURCES; if (!Node)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
goto Quickie;
}
/* Start parsing */ /* Start parsing */
Status = STATUS_NOT_IMPLEMENTED; Status = STATUS_NOT_IMPLEMENTED;