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



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

Reply via email to