diff options
author | Alan Modra <amodra@gmail.com> | 2023-01-26 18:25:05 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2023-01-27 08:18:45 +1030 |
commit | c37de2981558eb7ba4aa473ab214d8f2fb0c9876 (patch) | |
tree | 2afbb5120bcebb5a952c1fd5230bc60c48ff5c43 /bfd/coff-aarch64.c | |
parent | 4707199bd760f26cbc32614dd9f7c6ed7d2efdda (diff) | |
download | gdb-c37de2981558eb7ba4aa473ab214d8f2fb0c9876.zip gdb-c37de2981558eb7ba4aa473ab214d8f2fb0c9876.tar.gz gdb-c37de2981558eb7ba4aa473ab214d8f2fb0c9876.tar.bz2 |
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.
Diffstat (limited to 'bfd/coff-aarch64.c')
-rw-r--r-- | bfd/coff-aarch64.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c index 12e242e..659cd4f 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"; |