[NTOS:MM]
authorThomas Faber <thomas.faber@reactos.org>
Thu, 20 Apr 2017 08:58:45 +0000 (08:58 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Thu, 20 Apr 2017 08:58:45 +0000 (08:58 +0000)
- Avoid reference leaks in failure cases of MmCreateCacheSection
CORE-6931

svn path=/trunk/; revision=74383

reactos/ntoskrnl/cache/section/data.c

index 57096c9..198787b 100644 (file)
@@ -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;
     }