NULL,
0,
&KeyName);
- if (!Kcb) return FALSE;
+ if (!Kcb)
+ {
+ ObDereferenceObject(RootKey);
+ return FALSE;
+ }
/* Initialize the object */
RootKey->KeyControlBlock = Kcb;
0,
NULL,
&CmpRegistryRootHandle);
- if (!NT_SUCCESS(Status)) return FALSE;
+ if (!NT_SUCCESS(Status))
+ {
+ ObDereferenceObject(RootKey);
+ return FALSE;
+ }
/* Reference the key again so that we never lose it */
Status = ObReferenceObjectByHandle(CmpRegistryRootHandle,
KernelMode,
(PVOID*)&RootKey,
NULL);
- if (!NT_SUCCESS(Status)) return FALSE;
+ if (!NT_SUCCESS(Status))
+ {
+ ObDereferenceObject(RootKey);
+ return FALSE;
+ }
/* Completely sucessful */
return TRUE;