Update the logic related to get section header offset for TE image.

Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13273 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
ydong10 2012-05-04 05:11:07 +00:00
parent 5817449f2d
commit 00b7e3e3a2
1 changed files with 10 additions and 2 deletions

View File

@ -71,6 +71,7 @@ PeCoffLoaderGetPeHeader (
UINT32 SectionHeaderOffset; UINT32 SectionHeaderOffset;
UINT32 Index; UINT32 Index;
CHAR8 BufferData; CHAR8 BufferData;
UINTN NumberOfSections;
EFI_IMAGE_SECTION_HEADER SectionHeader; EFI_IMAGE_SECTION_HEADER SectionHeader;
// //
@ -303,8 +304,15 @@ PeCoffLoaderGetPeHeader (
// //
// Check each section field. // Check each section field.
// //
if (ImageContext->IsTeImage) {
SectionHeaderOffset = sizeof(EFI_TE_IMAGE_HEADER);
NumberOfSections = (UINTN) (Hdr.Te->NumberOfSections);
} else {
SectionHeaderOffset = ImageContext->PeCoffHeaderOffset + sizeof (UINT32) + sizeof (EFI_IMAGE_FILE_HEADER) + Hdr.Pe32->FileHeader.SizeOfOptionalHeader; SectionHeaderOffset = ImageContext->PeCoffHeaderOffset + sizeof (UINT32) + sizeof (EFI_IMAGE_FILE_HEADER) + Hdr.Pe32->FileHeader.SizeOfOptionalHeader;
for (Index = 0; Index < Hdr.Pe32->FileHeader.NumberOfSections; Index++) { NumberOfSections = (UINTN) (Hdr.Pe32->FileHeader.NumberOfSections);
}
for (Index = 0; Index < NumberOfSections; Index++) {
// //
// Read section header from file // Read section header from file
// //