From ec2dddf4cbf5bdc9546ec1421e3fcc5c6a044e66 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 20 Apr 2017 08:58:45 +0000 Subject: [PATCH] [NTOS:MM] - Avoid reference leaks in failure cases of MmCreateCacheSection CORE-6931 svn path=/trunk/; revision=74383 --- reactos/ntoskrnl/cache/section/data.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reactos/ntoskrnl/cache/section/data.c b/reactos/ntoskrnl/cache/section/data.c index 57096c9efca..198787b6e74 100644 --- a/reactos/ntoskrnl/cache/section/data.c +++ b/reactos/ntoskrnl/cache/section/data.c @@ -340,6 +340,7 @@ MmCreateCacheSection(PROS_SECTION_OBJECT *SectionObject, if (!NT_SUCCESS(Status)) { DPRINT("Failed: %x\n", Status); + ObDereferenceObject(FileObject); return Status; } @@ -382,6 +383,7 @@ MmCreateCacheSection(PROS_SECTION_OBJECT *SectionObject, { DPRINT("Status %x\n", Status); ObDereferenceObject(Section); + ObDereferenceObject(FileObject); return Status; } ASSERT(Status != STATUS_PENDING); @@ -413,6 +415,7 @@ MmCreateCacheSection(PROS_SECTION_OBJECT *SectionObject, { DPRINT("Zero size file\n"); ObDereferenceObject(Section); + ObDereferenceObject(FileObject); return STATUS_FILE_INVALID; } @@ -423,6 +426,7 @@ MmCreateCacheSection(PROS_SECTION_OBJECT *SectionObject, { DPRINT("Failed: STATUS_NO_MEMORY\n"); ObDereferenceObject(Section); + ObDereferenceObject(FileObject); return STATUS_NO_MEMORY; }