]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
explicitly state code assumptions on output section in AArch64 ld handlers
authorMatthieu Longo <matthieu.longo@arm.com>
Tue, 9 Sep 2025 10:10:43 +0000 (11:10 +0100)
committerMatthieu Longo <matthieu.longo@arm.com>
Fri, 6 Mar 2026 10:33:21 +0000 (10:33 +0000)
When support for non-contiguous memory was added, some corner cases when
sections were removed from the output object, did not emit fatal error and
reached code paths that correctly assumed every input section had a valid
output section, and this led to crashes due to segfault.

This patch adds BFD_ASSERTs in the previously segfaulting code, to
explicitly state code assumptions.

bfd/elfnn-aarch64.c

index de68f24e86d0c8efba67a52f8250888ed0b4d04a..66049c81edf7dcb880a6a8b6d19eabaa492b1ee2 100644 (file)
@@ -3275,6 +3275,7 @@ aarch64_build_one_stub (struct bfd_hash_entry *gen_entry,
                            stub_entry->target_section);
 
   stub_sec = stub_entry->stub_sec;
+  BFD_ASSERT (stub_sec->output_section != NULL);
 
   /* The layout must not change when a stub may be the target of another.  */
   if (htab->has_double_stub)
@@ -7083,6 +7084,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd,
          sym = local_syms + r_symndx;
          sym_type = ELFNN_ST_TYPE (sym->st_info);
          sec = local_sections[r_symndx];
+         BFD_ASSERT (sec->output_section != NULL);
 
          /* An object file might have a reference to a local
             undefined symbol.  This is a daft object file, but we