From: Nick Clifton Date: Tue, 14 May 2019 11:42:02 +0000 (+0100) Subject: Fix illegal memory access triggered when attempting to assemble a bogus i386 source... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=35015cd193be5e603ed31c14472d2d9d17e14e7a;p=binutils-gdb.git Fix illegal memory access triggered when attempting to assemble a bogus i386 source file. PR 24538 * config/tc-i386-intel.c (i386_intel_simplify_register): Reject illegal register numbers. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 57be17561fc..1530ebfdc76 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2019-05-14 Nick Clifton + + PR 24538 + * config/tc-i386-intel.c (i386_intel_simplify_register): Reject + illegal register numbers. + 2019-05-10 Nick Clifton PR 24538 diff --git a/gas/config/tc-i386-intel.c b/gas/config/tc-i386-intel.c index a12886d1b02..a2cd286572d 100644 --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -270,6 +270,12 @@ i386_intel_simplify_register (expressionS *e) else reg_num = e->X_md - 1; + if (reg_num < 0 || reg_num >= (int) i386_regtab_size) + { + as_bad (_("invalid register number")); + return 0; + } + if (!intel_state.in_bracket) { if (i.op[this_operand].regs)