[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Fix a couple of issues picked up by Windows 10 verifier
- It's possible for MmAllocatePagesForMdlEx() not to satisfy the full allocation request, but not fail. Thus AllocatePage() should check that the completed allocation actually matches what it asks for. - RegistryCreateKey() has a memory leak. Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> --- src/common/registry.c | 2 ++ src/common/util.h | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/common/registry.c b/src/common/registry.c index 233569f..fb05691 100644 --- a/src/common/registry.c +++ b/src/common/registry.c @@ -232,6 +232,8 @@ RegistryCreateKey( *Key = Child; + __RegistryFree(Buffer); + return STATUS_SUCCESS; fail4: diff --git a/src/common/util.h b/src/common/util.h index dc8a60e..92a3b19 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -190,12 +190,15 @@ __AllocatePage( SkipBytes, TotalBytes, MmCached, - 0); + MM_DONT_ZERO_ALLOCATION); status = STATUS_NO_MEMORY; if (Mdl == NULL) goto fail1; + if (Mdl->ByteCount < PAGE_SIZE) + goto fail2; + ASSERT((Mdl->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | MDL_PARTIAL_HAS_BEEN_MAPPED | MDL_PARTIAL | @@ -212,7 +215,7 @@ __AllocatePage( status = STATUS_UNSUCCESSFUL; if (MdlMappedSystemVa == NULL) - goto fail2; + goto fail3; ASSERT3P(MdlMappedSystemVa, ==, Mdl->MappedSystemVa); @@ -220,6 +223,9 @@ __AllocatePage( return Mdl; +fail3: + Error("fail3\n"); + fail2: Error("fail2\n"); -- 2.5.3 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |