[binutils-gdb] Fix illegal memory access triggered when attempting to assemble a bogus i386 source file.
Nick Clifton
nickc@sourceware.org
Tue May 14 11:43:00 GMT 2019
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=35015cd193be5e603ed31c14472d2d9d17e14e7a
commit 35015cd193be5e603ed31c14472d2d9d17e14e7a
Author: Nick Clifton <nickc@redhat.com>
Date: Tue May 14 12:42:02 2019 +0100
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:
---
gas/ChangeLog | 6 ++++++
gas/config/tc-i386-intel.c | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 57be175..1530ebf 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2019-05-14 Nick Clifton <nickc@redhat.com>
+
+ PR 24538
+ * config/tc-i386-intel.c (i386_intel_simplify_register): Reject
+ illegal register numbers.
+
2019-05-10 Nick Clifton <nickc@redhat.com>
PR 24538
diff --git a/gas/config/tc-i386-intel.c b/gas/config/tc-i386-intel.c
index a12886d..a2cd286 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)
More information about the Binutils-cvs
mailing list