From 6d15276ceddd2bf05995ee2efa86316fca1cd73a Mon Sep 17 00:00:00 2001 From: Sebastian Witt Date: Mon, 3 Jun 2024 17:43:22 +0200 Subject: UefiPayloadPkg: Fix LoadDxeCore for payload size > 16MB Fix calculation of first section in FileFindSection for FILE2 headers in UefiPayloadEntry module. Signed-off-by: Sebastian Witt Reviewed-by: Guo Dong Cc: Sean Rhodes Cc: James Lu Reviewed-by: Gua Guo --- UefiPayloadPkg/UefiPayloadEntry/LoadDxeCore.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'UefiPayloadPkg') diff --git a/UefiPayloadPkg/UefiPayloadEntry/LoadDxeCore.c b/UefiPayloadPkg/UefiPayloadEntry/LoadDxeCore.c index 898d610..3e13496 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/LoadDxeCore.c +++ b/UefiPayloadPkg/UefiPayloadEntry/LoadDxeCore.c @@ -211,14 +211,15 @@ FileFindSection ( if (IS_FFS_FILE2 (FileHeader)) { FileSize = FFS_FILE2_SIZE (FileHeader); + Section = (EFI_COMMON_SECTION_HEADER *)(((EFI_FFS_FILE_HEADER2 *)FileHeader) + 1); } else { FileSize = FFS_FILE_SIZE (FileHeader); + Section = (EFI_COMMON_SECTION_HEADER *)(FileHeader + 1); } FileSize -= sizeof (EFI_FFS_FILE_HEADER); - Section = (EFI_COMMON_SECTION_HEADER *)(FileHeader + 1); - Index = 0; + Index = 0; while (Index < FileSize) { if (Section->Type == SectionType) { if (IS_SECTION2 (Section)) { -- cgit v1.1