Author: markj
Date: Mon Jul 20 18:22:38 2020
New Revision: 363375
URL: https://svnweb.freebsd.org/changeset/base/363375

Log:
  libdwarf: Hide SHT_NOBITS sections.
  
  gnu_debuglink external debug files will contain an .eh_frame section of
  type SHT_NOBITS.  libdwarf does not handle such sections (or rather, it
  expects all debug sections to not have type SHT_NOBITS).  Avoid loading
  SHT_NOBITS sections, to be consistent with SGI libdwarf's handling of
  this case.
  
  PR:           239516
  Diagnosed by: Paco Pascal <m...@pacopascal.com>
  Reviewed by:  emaste (previous version)
  Event:                July 2020 Bugathon
  MFC after:    1 week
  Differential Revision:        https://reviews.freebsd.org/D25626

Modified:
  head/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c

Modified: head/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c
==============================================================================
--- head/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c      Mon Jul 20 
17:44:13 2020        (r363374)
+++ head/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c      Mon Jul 20 
18:22:38 2020        (r363375)
@@ -260,6 +260,9 @@ _dwarf_elf_init(Dwarf_Debug dbg, Elf *elf, Dwarf_Error
                        goto fail_cleanup;
                }
 
+               if (sh.sh_type == SHT_NOBITS)
+                       continue;
+
                if ((name = elf_strptr(elf, e->eo_strndx, sh.sh_name)) ==
                    NULL) {
                        DWARF_SET_ELF_ERROR(dbg, error);
@@ -312,6 +315,9 @@ _dwarf_elf_init(Dwarf_Debug dbg, Elf *elf, Dwarf_Error
                        ret = DW_DLE_ELF;
                        goto fail_cleanup;
                }
+
+               if (sh.sh_type == SHT_NOBITS)
+                       continue;
 
                memcpy(&e->eo_shdr[j], &sh, sizeof(sh));
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to