From 10e9fc81a19e27d445e5634efeb673ecaf1a8528 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 26 Aug 2014 10:49:38 +0000 Subject: [PATCH] [NTOS:CM] - Correctly delete resource in failure cases of CmpInitializeHive. Fixes pool corruption when trying to load an invalid hive file. svn path=/trunk/; revision=63949 --- reactos/ntoskrnl/config/cminit.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reactos/ntoskrnl/config/cminit.c b/reactos/ntoskrnl/config/cminit.c index 147ba73d993..84749d3b555 100644 --- a/reactos/ntoskrnl/config/cminit.c +++ b/reactos/ntoskrnl/config/cminit.c @@ -201,6 +201,7 @@ CmpInitializeHive(OUT PCMHIVE *RegistryHive, if (!NT_SUCCESS(Status)) { /* Cleanup allocations and fail */ + ExDeleteResourceLite(Hive->FlusherLock); ExFreePoolWithTag(Hive->FlusherLock, TAG_CM); ExFreePoolWithTag(Hive->ViewLock, TAG_CM); ExFreePoolWithTag(Hive, TAG_CM); @@ -218,6 +219,7 @@ CmpInitializeHive(OUT PCMHIVE *RegistryHive, if (CheckStatus != 0) { /* Cleanup allocations and fail */ + ExDeleteResourceLite(Hive->FlusherLock); ExFreePoolWithTag(Hive->FlusherLock, TAG_CM); ExFreePoolWithTag(Hive->ViewLock, TAG_CM); ExFreePoolWithTag(Hive, TAG_CM);