segv in coff_aarch64_addr32nb_reloc
Alan Modra
amodra@gmail.com
Thu Jan 26 21:51:20 GMT 2023
* 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.
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";
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list