diff --git a/EdkModulePkg/Core/Dxe/Gcd/gcd.c b/EdkModulePkg/Core/Dxe/Gcd/gcd.c index 208c05a015..0735bf00b9 100644 --- a/EdkModulePkg/Core/Dxe/Gcd/gcd.c +++ b/EdkModulePkg/Core/Dxe/Gcd/gcd.c @@ -2089,7 +2089,7 @@ Returns: if (GuidHob != NULL) { EfiMemoryTypeInformation = GET_GUID_HOB_DATA (GuidHob); DataSize = GET_GUID_HOB_DATA_SIZE (GuidHob); - if (EfiMemoryTypeInformation != NULL && DataSize > 0 && DataSize < EfiMaxMemoryType * sizeof (EFI_MEMORY_TYPE_INFORMATION)) { + if (EfiMemoryTypeInformation != NULL && DataSize > 0 && DataSize <= (EfiMaxMemoryType + 1) * sizeof (EFI_MEMORY_TYPE_INFORMATION)) { CopyMem (&gMemoryTypeInformation, EfiMemoryTypeInformation, DataSize); } }