From: Nick Clifton Date: Thu, 14 Sep 2017 10:27:40 +0000 (+0100) Subject: Import patch from mainline to fix an address violation when parsing a corrupt PE... X-Git-Tag: binutils-2_29_1~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dcaaca89e8618eba35193c27afcb1cfa54f74582;p=thirdparty%2Fbinutils-gdb.git Import patch from mainline to fix an address violation when parsing a corrupt PE binary. PR binutils/22113 * peXXigen.c (pe_print_idata): Extend check for HintName vector entries. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index aca2459d46e..0aeefda8089 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2017-09-14 Nick Clifton + + Import from mainline: + + PR binutils/22113 + * peXXigen.c (pe_print_idata): Extend check for HintName vector + entries. + 2017-08-21 Hans-Peter Nilsson Import from mainline: diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index a18e0b26792..f538c75e113 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -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"), 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 ", 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"), member); else {