On Sun, 4 May 2025, Pali Rohár wrote:

NumberOfRvaAndSizes contains number of entries in DataDirectory[] array.
---
mingw-w64-tools/genidl/src/genidl_readpe.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/mingw-w64-tools/genidl/src/genidl_readpe.c 
b/mingw-w64-tools/genidl/src/genidl_readpe.c
index 1bdf8ae37b31..cb3ec74e4bca 100644
--- a/mingw-w64-tools/genidl/src/genidl_readpe.c
+++ b/mingw-w64-tools/genidl/src/genidl_readpe.c
@@ -183,13 +183,15 @@ readResourceDirectory (FILE *fp, unsigned char **dta, 
size_t *length, size_t *re
  if (be64)
  {
    fread (&hdr.hdr64, 1, sizeof (sImgNtHeaders64), fp);
-    res_size = hdr.hdr64.OptionalHeader.DataDirectory[2].size;
+    if (hdr.hdr64.OptionalHeader.NumberOfRvaAndSizes > 2)
+      res_size = hdr.hdr64.OptionalHeader.DataDirectory[2].size;
    sect_count = hdr.hdr64.FileHeader.NumberOfSections;
  }
  else
  {
    fread (&hdr.hdr32, 1, sizeof (sImgNtHeaders32), fp);
-    res_size = hdr.hdr32.OptionalHeader.DataDirectory[2].size;
+    if (hdr.hdr32.OptionalHeader.NumberOfRvaAndSizes > 2)
+      res_size = hdr.hdr32.OptionalHeader.DataDirectory[2].size;
    sect_count = hdr.hdr32.FileHeader.NumberOfSections;
  }
  if (!res_size)
--
2.20.1

These two patches looked good, so I pushed them.

// Martin

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to