UINT32 SectionHeaderOffset;\r
UINT32 Index;\r
CHAR8 BufferData;\r
+ UINTN NumberOfSections;\r
EFI_IMAGE_SECTION_HEADER SectionHeader;\r
\r
//\r
//\r
// Check each section field.\r
//\r
- SectionHeaderOffset = ImageContext->PeCoffHeaderOffset + sizeof (UINT32) + sizeof (EFI_IMAGE_FILE_HEADER) + Hdr.Pe32->FileHeader.SizeOfOptionalHeader;\r
- for (Index = 0; Index < Hdr.Pe32->FileHeader.NumberOfSections; Index++) {\r
+ if (ImageContext->IsTeImage) {\r
+ SectionHeaderOffset = sizeof(EFI_TE_IMAGE_HEADER);\r
+ NumberOfSections = (UINTN) (Hdr.Te->NumberOfSections);\r
+ } else {\r
+ SectionHeaderOffset = ImageContext->PeCoffHeaderOffset + sizeof (UINT32) + sizeof (EFI_IMAGE_FILE_HEADER) + Hdr.Pe32->FileHeader.SizeOfOptionalHeader;\r
+ NumberOfSections = (UINTN) (Hdr.Pe32->FileHeader.NumberOfSections);\r
+ }\r
+\r
+ for (Index = 0; Index < NumberOfSections; Index++) {\r
//\r
// Read section header from file\r
//\r