From 95bfe26e6b78a99478c0c518ac61ee12a44c1f62 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 22 May 2012 01:55:16 +0000 Subject: [PATCH] gas: mips: fix segfault with invalid default cpu strings If you configure gas for a mips32el-* target, the default cpu calculation gets mangled, and we end up passing and invalid value as the default cpu. If you try executing gas after that, it segfaults. This is because it assumes that the default cpu value is always valid. $ ./gas/as-new Assembler messages: Error: Bad value (2) for default CPU Segmentation fault (core dumped) I'm not debating that the target tuple is valid, just that gas shouldn't crash. So add a friendly assert to avoid that. Signed-off-by: Mike Frysinger --- gas/ChangeLog | 5 +++++ gas/config/tc-mips.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 116ba37..caef2ba 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2012-05-21 Mike Frysinger + + * config/tc-mips.c (mips_after_parse_args): Assert that arch_info + is non-NULL. + 2012-05-19 Alan Modra * config/obj-elf.c (obj_elf_section): Cater for TC_KEEP_OPERAND_SPACES diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index d6b8ecb..4760c05 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -15005,7 +15005,10 @@ mips_after_parse_args (void) } if (arch_info == 0) - arch_info = mips_parse_cpu ("default CPU", MIPS_CPU_STRING_DEFAULT); + { + arch_info = mips_parse_cpu ("default CPU", MIPS_CPU_STRING_DEFAULT); + gas_assert (arch_info); + } if (ABI_NEEDS_64BIT_REGS (mips_abi) && !ISA_HAS_64BIT_REGS (arch_info->isa)) as_bad (_("-march=%s is not compatible with the selected ABI"), -- 2.7.4