diff options
author | Thomas Hebb <tommyhebb@gmail.com> | 2022-04-29 21:17:58 -0700 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2022-04-30 19:21:11 +0930 |
commit | 16089f320a9226e7cdb73e9fb4266d9e450085b2 (patch) | |
tree | bb6e791e1b2862d6204e645bf27ca312423c23da /opcodes/csky-dis.c | |
parent | 2e920d702b43c6d21ebd1e8a49c9e976a0d2cde6 (diff) | |
download | fsf-binutils-gdb-16089f320a9226e7cdb73e9fb4266d9e450085b2.zip fsf-binutils-gdb-16089f320a9226e7cdb73e9fb4266d9e450085b2.tar.gz fsf-binutils-gdb-16089f320a9226e7cdb73e9fb4266d9e450085b2.tar.bz2 |
opcodes: don't assume ELF in riscv, csky, rl78, mep disassemblers
Currently, the get_disassembler() implementations for riscv, csky, and
rl78--and mep_print_insn() for mep--access ELF variants of union fields
without first checking that the bfd actually represents an ELF. This
causes undefined behavior and crashes when disassembling non-ELF files
(the "binary" BFD, for example). Fix that.
Diffstat (limited to 'opcodes/csky-dis.c')
-rw-r--r-- | opcodes/csky-dis.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/opcodes/csky-dis.c b/opcodes/csky-dis.c index 9616316..b7c8336 100644 --- a/opcodes/csky-dis.c +++ b/opcodes/csky-dis.c @@ -239,7 +239,7 @@ csky_get_disassembler (bfd *abfd) { obj_attribute *attr; const char *sec_name = NULL; - if (!abfd) + if (!abfd || bfd_get_flavour (abfd) != bfd_target_elf_flavour) dis_info.isa = CSKY_DEFAULT_ISA; else { |