From 8c180acf1db9404bef847d617e35788ed23b04de Mon Sep 17 00:00:00 2001 From: Hongbin1 Zhang Date: Fri, 10 Jan 2025 21:25:15 +0800 Subject: [PATCH] StandaloneMmPkg/MmIpl: Correct FV HOB check founction When at last hob, the FV HOB check function should exit from the loop Signed-off-by: Hongbin1 Zhang Cc: Jiewen Yao Cc: Ray Ni Cc: Star Zeng Cc: Jiaxin Wu Cc: Wei6 Xu Cc: Sami Mujawar Cc: Ard Biesheuvel Cc: Supreeth Venkatesh --- .../Drivers/StandaloneMmIplPei/MmFoundationHob.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/StandaloneMmPkg/Drivers/StandaloneMmIplPei/MmFoundationHob.c b/StandaloneMmPkg/Drivers/StandaloneMmIplPei/MmFoundationHob.c index 27103a4564..b4eb7bbcd5 100644 --- a/StandaloneMmPkg/Drivers/StandaloneMmIplPei/MmFoundationHob.c +++ b/StandaloneMmPkg/Drivers/StandaloneMmIplPei/MmFoundationHob.c @@ -823,24 +823,21 @@ IsFvHobExist ( ) { EFI_PEI_HOB_POINTERS Hob; - UINTN HobLength; if ((HobList == NULL) || (HobSize == 0)) { return FALSE; } - Hob.Raw = (UINT8 *)HobList; - HobLength = GET_HOB_LENGTH (Hob); // // Parse the HOB list until end of list or matching type is found. // - while (HobLength <= HobSize) { + Hob.Raw = HobList; + while ((UINTN)(Hob.Raw - HobList) < HobSize) { if (Hob.Header->HobType == EFI_HOB_TYPE_FV) { return TRUE; } - Hob.Raw = GET_NEXT_HOB (Hob); - HobLength += GET_HOB_LENGTH (Hob); + Hob.Raw = GET_NEXT_HOB (Hob); } return FALSE;