From df14063ebc9a9c5e906c8b5569436ab6ecd428cd Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 30 Jun 2015 10:54:41 +0000 Subject: [PATCH 1/1] [KMTESTS:MM] - Fix some massive NP pool leakage. svn path=/trunk/; revision=68318 --- rostests/kmtests/ntos_mm/MmMdl.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rostests/kmtests/ntos_mm/MmMdl.c b/rostests/kmtests/ntos_mm/MmMdl.c index 85dd3fc501d..986a17a6023 100644 --- a/rostests/kmtests/ntos_mm/MmMdl.c +++ b/rostests/kmtests/ntos_mm/MmMdl.c @@ -35,6 +35,7 @@ TestMmAllocatePagesForMdl(VOID) ok(MmGetMdlVirtualAddress(Mdl) == NULL, "Virtual address: %p\n", MmGetMdlVirtualAddress(Mdl)); ok(!(Mdl->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA), "MdlFlags: %lx\n", Mdl->MdlFlags); MmFreePagesFromMdl(Mdl); + ExFreePoolWithTag(Mdl, 0); /* Now map/unmap it */ Mdl = MmAllocatePagesForMdl(LowAddress, @@ -66,6 +67,7 @@ TestMmAllocatePagesForMdl(VOID) ok(MmGetMdlVirtualAddress(Mdl) == NULL, "Virtual address: %p\n", MmGetMdlVirtualAddress(Mdl)); ok(!(Mdl->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA), "MdlFlags: %lx\n", Mdl->MdlFlags); MmFreePagesFromMdl(Mdl); + ExFreePoolWithTag(Mdl, 0); /* Now map it, and free without unmapping */ Mdl = MmAllocatePagesForMdl(LowAddress, @@ -90,6 +92,7 @@ TestMmAllocatePagesForMdl(VOID) ok(Mdl->MappedSystemVa == SystemVa, "MappedSystemVa: %p, System VA: %p\n", Mdl->MappedSystemVa, SystemVa); ok((Mdl->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA), "MdlFlags: %lx\n", Mdl->MdlFlags); MmFreePagesFromMdl(Mdl); + ExFreePoolWithTag(Mdl, 0); /* try to allocate 2 GB -- should succeed but not map */ Mdl = MmAllocatePagesForMdl(LowAddress, @@ -115,6 +118,7 @@ TestMmAllocatePagesForMdl(VOID) ok(MmGetMdlVirtualAddress(Mdl) == NULL, "Virtual address: %p\n", MmGetMdlVirtualAddress(Mdl)); ok(!(Mdl->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA), "MdlFlags: %lx\n", Mdl->MdlFlags); MmFreePagesFromMdl(Mdl); + ExFreePoolWithTag(Mdl, 0); } /* now allocate and map 32 MB Mdls until we fail */ @@ -157,6 +161,7 @@ TestMmAllocatePagesForMdl(VOID) if (SystemVas[i] != NULL) MmUnmapLockedPages(SystemVas[i], Mdls[i]); MmFreePagesFromMdl(Mdls[i]); + ExFreePoolWithTag(Mdls[i], 0); if (SystemVas[i] == NULL) break; } -- 2.17.1