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