addr2line out of memory on fuzzed file

Alan Modra amodra@gmail.com
Wed Jan 4 13:25:04 GMT 2023


Another case of fuzzers finding the section size sanity checks are
avoided with SHT_NOBITS sections.

	* dwarf2.c (read_section): Check that the DWARF section being
	read has contents.

diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 6eb6e04e6e5..f689eebbd88 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -705,6 +705,14 @@ read_section (bfd *abfd,
 	  return false;
 	}
 
+      if ((msec->flags & SEC_HAS_CONTENTS) == 0)
+	{
+	  _bfd_error_handler (_("DWARF error: section %s has no contents"),
+			      section_name);
+	  bfd_set_error (bfd_error_no_contents);
+	  return false;
+	}
+
       if (_bfd_section_size_insane (abfd, msec))
 	{
 	  /* PR 26946 */

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list