Reviewed-by: Liming Gao <liming....@intel.com> > -----Original Message----- > From: Zhu, Yonghong > Sent: Thursday, May 12, 2016 2:32 PM > To: edk2-devel@lists.01.org > Cc: Gao, Liming <liming....@intel.com> > Subject: [Patch] BaseTools/GenFw: enhance to use Magic Field to identify > the image > > Original use the File Header Machine Field to identify > EFI_IMAGE_OPTIONAL_HEADER32 or EFI_IMAGE_OPTIONAL_HEADER64, it > cannot > correctly handle EBC arch PE32 image. > > Cc: Liming Gao <liming....@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Yonghong Zhu <yonghong....@intel.com> > --- > BaseTools/Source/C/GenFw/GenFw.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/BaseTools/Source/C/GenFw/GenFw.c > b/BaseTools/Source/C/GenFw/GenFw.c > index 4a91df5..03bfaa1 100644 > --- a/BaseTools/Source/C/GenFw/GenFw.c > +++ b/BaseTools/Source/C/GenFw/GenFw.c > @@ -1,9 +1,9 @@ > /** @file > Converts a pe32+ image to an FW, Te image type, or other specific image. > > -Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > which accompanies this distribution. The full text of the license may be > found at > http://opensource.org/licenses/bsd-license.php > > @@ -2794,12 +2794,12 @@ Returns: > > // > // Get Debug, Export and Resource EntryTable RVA address. > // Resource Directory entry need to review. > // > - if (FileHdr->Machine == EFI_IMAGE_MACHINE_IA32) { > - Optional32Hdr = (EFI_IMAGE_OPTIONAL_HEADER32 *) ((UINT8*) FileHdr > + sizeof (EFI_IMAGE_FILE_HEADER)); > + Optional32Hdr = (EFI_IMAGE_OPTIONAL_HEADER32 *) ((UINT8*) FileHdr + > sizeof (EFI_IMAGE_FILE_HEADER)); > + if (Optional32Hdr->Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) { > SectionHeader = (EFI_IMAGE_SECTION_HEADER *) ((UINT8 *) > Optional32Hdr + FileHdr->SizeOfOptionalHeader); > if (Optional32Hdr->NumberOfRvaAndSizes > > EFI_IMAGE_DIRECTORY_ENTRY_EXPORT && \ > Optional32Hdr- > >DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_EXPORT].Size != 0) { > ExportDirectoryEntryRva = Optional32Hdr- > >DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress; > } > -- > 2.6.1.windows.1
_______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel