X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkModulePkg%2FCore%2FDxeIplPeim%2FDxeLoadX64.c;h=cbb7595dac7bdaf2ffe1762bbc250f6ef0157a45;hp=451d239eb6196d4da900b62a68c781b943c373f8;hb=47a16b84f23e83c49d0fa0c5f9ae507df4b5c986;hpb=84a99d48f4d59e0cf59b6d55328c35225c00246d diff --git a/EdkModulePkg/Core/DxeIplPeim/DxeLoadX64.c b/EdkModulePkg/Core/DxeIplPeim/DxeLoadX64.c index 451d239eb6..cbb7595dac 100644 --- a/EdkModulePkg/Core/DxeIplPeim/DxeLoadX64.c +++ b/EdkModulePkg/Core/DxeIplPeim/DxeLoadX64.c @@ -445,12 +445,12 @@ Returns: &FfsFileHeader ); if (!EFI_ERROR (Status)) { - CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID)); Status = PeiProcessFile ( SectionType, - FfsFileHeader, + &FfsFileHeader, Pe32Data ); + CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID)); return Status; } Hob.Raw = GET_NEXT_HOB (Hob); @@ -662,7 +662,7 @@ Returns: // Status = PeiProcessFile ( EFI_SECTION_PE32, - FfsHeader, + &FfsHeader, &Pe32Data ); @@ -686,9 +686,9 @@ Returns: EFI_STATUS PeiProcessFile ( - IN UINT16 SectionType, - IN EFI_FFS_FILE_HEADER *FfsFileHeader, - OUT VOID **Pe32Data + IN UINT16 SectionType, + IN OUT EFI_FFS_FILE_HEADER **RealFfsFileHeader, + OUT VOID **Pe32Data ) /*++ @@ -736,6 +736,9 @@ Returns: EFI_GUID TempGuid; EFI_FIRMWARE_VOLUME_HEADER *FvHeader; EFI_COMPRESSION_SECTION *CompressionSection; + EFI_FFS_FILE_HEADER *FfsFileHeader; + + FfsFileHeader = *RealFfsFileHeader; Status = PeiServicesFfsFindSectionData ( EFI_SECTION_COMPRESSION, @@ -930,7 +933,11 @@ Returns: return EFI_NOT_FOUND; } - return PeiProcessFile (SectionType, FfsFileHeader, Pe32Data); + // + // Reture the FfsHeader that contain Pe32Data. + // + *RealFfsFileHeader = FfsFileHeader; + return PeiProcessFile (SectionType, RealFfsFileHeader, Pe32Data); } } //