Stop the BFD library complaining about compressed dwarf debug string sections being...
authorNick Clifton <nickc@redhat.com>
Wed, 2 Feb 2022 17:06:22 +0000 (17:06 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 2 Feb 2022 17:06:22 +0000 (17:06 +0000)
PR 28834
* dwarf2.c (read_section): Change the heuristic that checks for
overlarge dwarf debug info sections.

bfd/ChangeLog
bfd/dwarf2.c

index b213764785538f7918fc9bd76ccf4fce558ed89b..607becee183a51d6e58d4dd998b44061dc917f05 100644 (file)
@@ -1,3 +1,9 @@
+2022-02-02  Nick Clifton  <nickc@redhat.com>
+
+       PR 28834
+       * dwarf2.c (read_section): Change the heuristic that checks for
+       overlarge dwarf debug info sections.
+
 2022-02-02  Stafford Horne  <shorne@gmail.com>
 
        PR 28735
index be9983edbf0cc137107b8fa08e3b60c13dd5a133..fdf071c36e98082c725675cb0f5dfb360f7de9d5 100644 (file)
@@ -557,10 +557,14 @@ read_section (bfd *             abfd,
 
       amt = bfd_get_section_limit_octets (abfd, msec);
       filesize = bfd_get_file_size (abfd);
-      if (amt >= filesize)
+      /* PR 28834: A compressed debug section could well decompress to a size
+        larger than the file, so we choose an arbitrary modifier of 10x in
+        the test below.  If this ever turns out to be insufficient, it can
+        be changed by a future update.  */
+      if (amt >= filesize * 10)
        {
          /* PR 26946 */
-         _bfd_error_handler (_("DWARF error: section %s is larger than its filesize! (0x%lx vs 0x%lx)"),
+         _bfd_error_handler (_("DWARF error: section %s is larger than 10x its filesize! (0x%lx vs 0x%lx)"),
                              section_name, (long) amt, (long) filesize);
          bfd_set_error (bfd_error_bad_value);
          return false;