From 0ae60c3ef45d41b34d40ed5c7b4fdfea289530de Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 5 Jan 2017 09:11:47 +0000 Subject: [PATCH] Prevent an abort in the FRV disassembler if the target bfd name is unknown. PR 20946 * frv-desc.c (lookup_mach_via_bfd_name): Return NULL if the name could not be matched. (frv_cgen_cpu_open): Allow for lookup_mach_via_bfd_name returning NULL. --- opcodes/ChangeLog | 8 ++++++++ opcodes/frv-desc.c | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 555a37957be..8494c51e47a 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,11 @@ +2017-01-05 Nick Clifton + + PR 20946 + * frv-desc.c (lookup_mach_via_bfd_name): Return NULL if the name + could not be matched. + (frv_cgen_cpu_open): Allow for lookup_mach_via_bfd_name returning + NULL. + 2017-01-04 Szabolcs Nagy * aarch64-tbl.h (RCPC, RCPC_INSN): Define. diff --git a/opcodes/frv-desc.c b/opcodes/frv-desc.c index ab4d7eb42bf..bba510c6e2f 100644 --- a/opcodes/frv-desc.c +++ b/opcodes/frv-desc.c @@ -6173,7 +6173,7 @@ lookup_mach_via_bfd_name (const CGEN_MACH *table, const char *name) return table; ++table; } - abort (); + return NULL; } /* Subroutine of frv_cgen_cpu_open to build the hardware table. */ @@ -6386,8 +6386,8 @@ frv_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) const char *name = va_arg (ap, const char *); const CGEN_MACH *mach = lookup_mach_via_bfd_name (frv_cgen_mach_table, name); - - machs |= 1 << mach->num; + if (mach != NULL) + machs |= 1 << mach->num; break; } case CGEN_CPU_OPEN_ENDIAN : -- 2.30.2