Fix address violation when parsing a corrupt PE binary.

PR binutils/22113
	* peXXigen.c (pe_print_idata): Extend check for HintName vector
	entries.
This commit is contained in:
Nick Clifton
2017-09-14 11:15:55 +01:00
parent 255300f5a9
commit 4d465c689a
2 changed files with 9 additions and 2 deletions
+6
View File
@@ -1,3 +1,9 @@
2017-09-14 Nick Clifton <nickc@redhat.com>
PR binutils/22113
* peXXigen.c (pe_print_idata): Extend check for HintName vector
entries.
2017-09-13 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-x86.h: Fix a typo in comments.
+3 -2
View File
@@ -1514,7 +1514,7 @@ pe_print_idata (bfd * abfd, void * vfile)
member_high, member,
WithoutHighBit (member_high), member);
/* PR binutils/17512: Handle corrupt PE data. */
else if (amt + 2 >= datasize)
else if (amt >= datasize || amt + 2 >= datasize)
fprintf (file, _("\t<corrupt: 0x%04lx>"), member);
else
{
@@ -1548,11 +1548,12 @@ pe_print_idata (bfd * abfd, void * vfile)
break;
amt = member - adj;
if (HighBitSet (member))
fprintf (file, "\t%04lx\t %4lu <none>",
member, WithoutHighBit (member));
/* PR binutils/17512: Handle corrupt PE data. */
else if (amt + 2 >= datasize)
else if (amt >= datasize || amt + 2 >= datasize)
fprintf (file, _("\t<corrupt: 0x%04lx>"), member);
else
{