summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <mcgrathr@google.com>2014-01-09 10:13:10 -0800
committerRoland McGrath <mcgrathr@google.com>2014-01-09 11:22:59 -0800
commite2e6193d65a20e6b7fccba288e5d1bc45b78d194 (patch)
tree234462e90dba8ec8d644584b45bb472b08b2dcc5
parent0000e5ccd8615d632ac6ddc831cd5d3af8084737 (diff)
downloadbinutils-gdb-e2e6193d65a20e6b7fccba288e5d1bc45b78d194.tar.gz
Fix buffer underrun in i386-dis.c.
opcodes/ * i386-dis.c (print_insn): Do not touch all_prefixes[-1] when last_rex_prefix is -1.
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/i386-dis.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 8f080b6d939..4d8b86602eb 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2014-01-09 Bradley Nelson <bradnelson@google.com>
+ Roland McGrath <mcgrathr@google.com>
+
+ * i386-dis.c (print_insn): Do not touch all_prefixes[-1] when
+ last_rex_prefix is -1.
+
2014-01-08 H.J. Lu <hongjiu.lu@intel.com>
* i386-gen.c (process_copyright): Update copyright year to 2014.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 2c28e52cc89..f2ec8c4947e 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -12645,7 +12645,7 @@ print_insn (bfd_vma pc, disassemble_info *info)
}
/* Check if the REX prefix is used. */
- if (rex_ignored == 0 && (rex ^ rex_used) == 0)
+ if (rex_ignored == 0 && (rex ^ rex_used) == 0 && last_rex_prefix >= 0)
all_prefixes[last_rex_prefix] = 0;
/* Check if the SEG prefix is used. */