]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/CCode/Source/PeCoffLoader/BasePeCoff.c
Fix PeLoad function can't handle invalid PeImage to skip correct debug entry.
[mirror_edk2.git] / Tools / CCode / Source / PeCoffLoader / BasePeCoff.c
index f2053b7e382ea1bc2b106b1a10cdfd70ed4a42a7..06d4b83af7e6a11036d134baccaab0fc44bc31b3 100644 (file)
@@ -260,7 +260,7 @@ Returns:
   if (!(ImageContext->IsTeImage)) {\r
     ImageContext->ImageAddress = PeHdr.OptionalHeader.ImageBase;\r
   } else {\r
-    ImageContext->ImageAddress = (PHYSICAL_ADDRESS) (TeHdr.ImageBase + sizeof (EFI_TE_IMAGE_HEADER) - TeHdr.StrippedSize);\r
+    ImageContext->ImageAddress = (PHYSICAL_ADDRESS) (TeHdr.ImageBase + TeHdr.StrippedSize - sizeof (EFI_TE_IMAGE_HEADER));\r
   }\r
   //\r
   // Initialize the alternate destination address to 0 indicating that it\r
@@ -346,7 +346,7 @@ Returns:
       }\r
 \r
       if (DebugDirectoryEntryFileOffset != 0) {    \r
-        for (Index = 0; Index < (DebugDirectoryEntry->Size); Index += Size) {\r
+        for (Index = 0; Index < DebugDirectoryEntry->Size; Index += sizeof (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY)) {\r
           //\r
           // Read next debug directory entry\r
           //\r
@@ -438,7 +438,7 @@ Returns:
     }\r
 \r
     if (DebugDirectoryEntryFileOffset != 0) {\r
-      for (Index = 0; Index < (DebugDirectoryEntry->Size); Index += Size) {\r
+      for (Index = 0; Index < DebugDirectoryEntry->Size; Index += sizeof (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY)) {\r
         //\r
         // Read next debug directory entry\r
         //\r