From c37de2981558eb7ba4aa473ab214d8f2fb0c9876 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 26 Jan 2023 18:25:05 +1030 Subject: [PATCH] segv in coff_aarch64_addr32nb_reloc * coff-aarch64.c (coff_aarch64_addr32nb_reloc): When output_bfd is NULL (which it is for objdump -W) get the output bfd via the input section. --- bfd/coff-aarch64.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c index 12e242e18d0..659cd4f162d 100644 --- a/bfd/coff-aarch64.c +++ b/bfd/coff-aarch64.c @@ -189,9 +189,10 @@ coff_aarch64_addr32nb_reloc (bfd *abfd, + symbol->section->output_section->vma); bfd_vma addend = bfd_getl_signed_32 (data + reloc_entry->address); relocation += addend; - if (bfd_get_flavour (output_bfd) == bfd_target_coff_flavour - && obj_pe (output_bfd)) - relocation -= pe_data (output_bfd)->pe_opthdr.ImageBase; + bfd *obfd = input_section->output_section->owner; + if (bfd_get_flavour (obfd) == bfd_target_coff_flavour + && obj_pe (obfd)) + relocation -= pe_data (obfd)->pe_opthdr.ImageBase; else { *error_message = "unsupported"; -- 2.30.2