Handle printing information about PE format files which have 0 as the value of the...
authorDaniel Bonniot de Ruisselet <bonniot@gmail.com>
Tue, 6 Jun 2017 14:06:02 +0000 (15:06 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 6 Jun 2017 14:06:02 +0000 (15:06 +0100)
PR binutils/21546
* peXXigen.c (pe_print_idata): Use the address of the first thunk
if the hint address is zero.

bfd/ChangeLog
bfd/peXXigen.c

index adef934..4992fd1 100644 (file)
@@ -1,3 +1,9 @@
+2017-06-06  Daniel Bonniot de Ruisselet  <bonniot@gmail.com>
+
+       PR binutils/21546
+       * peXXigen.c (pe_print_idata): Use the address of the first thunk
+       if the hint address is zero.
+
 2017-06-06  James Clarke  <jrtc27@jrtc27.com>
 
        PR ld/19579
 2017-06-06  James Clarke  <jrtc27@jrtc27.com>
 
        PR ld/19579
index 27a75b3..a18e0b2 100644 (file)
@@ -1432,6 +1432,11 @@ pe_print_idata (bfd * abfd, void * vfile)
       bfd_size_type maxlen = (char *)(data + datasize) - dll - 1;
       fprintf (file, _("\n\tDLL Name: %.*s\n"), (int) maxlen, dll);
 
       bfd_size_type maxlen = (char *)(data + datasize) - dll - 1;
       fprintf (file, _("\n\tDLL Name: %.*s\n"), (int) maxlen, dll);
 
+      /* PR 21546: When the Hint Address is zero,
+        we try the First Thunk instead.  */
+      if (hint_addr == 0)
+       hint_addr = first_thunk;
+
       if (hint_addr != 0)
        {
          bfd_byte *ft_data;
       if (hint_addr != 0)
        {
          bfd_byte *ft_data;