- 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

@ -1042,10 +1042,14 @@ CmpParseKey(IN PVOID ParseObject,
/* Check if everything was found cached */
if (!TotalRemainingSubkeys) ASSERTMSG("Caching not implemented", FALSE);
/* 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 */
if (Kcb->Flags & KEY_SYM_LINK)
{
@ -1092,8 +1096,12 @@ CmpParseKey(IN PVOID ParseObject,
/* Get the key node */
Node = (PCM_KEY_NODE)HvGetCell(Hive, Cell);
if (!Node) return STATUS_INSUFFICIENT_RESOURCES;
if (!Node)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
goto Quickie;
}
/* Start parsing */
Status = STATUS_NOT_IMPLEMENTED;
while (TRUE)