From: Magnus Wållberg Date: Mon, 8 Dec 2025 09:33:40 +0000 (+1030) Subject: PR 33676 ld segfaults when using binary input inside NOLOAD X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce2197f48d59db89f9ce4c2adfd9d47f0730ecc8;p=thirdparty%2Fbinutils-gdb.git PR 33676 ld segfaults when using binary input inside NOLOAD The code at ldlang.c:2840-2841 checks if the output BFD is ELF format, then unconditionally uses elf_section_type() on the input section without verifying the input section is also ELF format. This was introduced in commit d87be451e (PR ld/32787) which added special handling for NOLOAD note sections. PR 33676 PR 32787 * ldlang.c (lang_add_section): Check section owner's BFD flavour before using elf_section_type. --- diff --git a/ld/ldlang.c b/ld/ldlang.c index 53bbff1f2a6..9963d5eb98f 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -2835,6 +2835,7 @@ lang_add_section (lang_statement_list_type *ptr, section. Unlike a .bss style section, if a note section is marked as NOLOAD, also clear SEC_ALLOC. */ if (bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour + && bfd_get_flavour (section->owner) == bfd_target_elf_flavour && elf_section_type (section) != SHT_NOTE) flags &= ~SEC_HAS_CONTENTS; else