From a71c3f0d1269a4beac3137c34d08f0a42245f765 Mon Sep 17 00:00:00 2001 From: Dmitry Gorbachev Date: Wed, 6 Jan 2010 01:28:23 +0000 Subject: [PATCH] Check if MmHeapAlloc() failed. svn path=/trunk/; revision=44972 --- reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c b/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c index cd5e10110bb..9ca9f128387 100644 --- a/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c +++ b/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c @@ -68,7 +68,7 @@ DetectAcpiBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber) LoaderBlock.Flags |= MB_FLAGS_ACPI_TABLE; /* Get BIOS memory map */ - RtlZeroMemory(BiosMemoryMap, sizeof(BIOS_MEMORY_MAP) * 32); + RtlZeroMemory(BiosMemoryMap, sizeof(BiosMemoryMap)); BiosMemoryMapEntryCount = PcMemGetMemoryMap(BiosMemoryMap, sizeof(BiosMemoryMap) / sizeof(BIOS_MEMORY_MAP)); @@ -79,6 +79,14 @@ DetectAcpiBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber) /* Set 'Configuration Data' value */ PartialResourceList = MmHeapAlloc(sizeof(CM_PARTIAL_RESOURCE_LIST) + TableSize); + + if (PartialResourceList == NULL) + { + DPRINTM(DPRINT_HWDETECT, + "Failed to allocate resource descriptor\n"); + return; + } + memset(PartialResourceList, 0, sizeof(CM_PARTIAL_RESOURCE_LIST) + TableSize); PartialResourceList->Version = 0; PartialResourceList->Revision = 0;