Author: fireball
Date: Tue Sep 30 13:44:22 2008
New Revision: 36602
URL:
http://svn.reactos.org/svn/reactos?rev=36602&view=rev
Log:
- Don't leak registry lock in failure branches of CmpParseKey. Spotted by Timo.
Modified:
trunk/reactos/ntoskrnl/config/cmparse.c
Modified: trunk/reactos/ntoskrnl/config/cmparse.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmparse.c?…
==============================================================================
--- trunk/reactos/ntoskrnl/config/cmparse.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/config/cmparse.c [iso-8859-1] Tue Sep 30 13:44:22 2008
@@ -1042,10 +1042,14 @@
/* 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 @@
/* 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)