From 35015cd193be5e603ed31c14472d2d9d17e14e7a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 14 May 2019 12:42:02 +0100 Subject: [PATCH] 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. --- gas/ChangeLog | 6 ++++++ gas/config/tc-i386-intel.c | 6 ++++++ 2 files changed, 12 insertions(+) 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)