From e2e6193d65a20e6b7fccba288e5d1bc45b78d194 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 9 Jan 2014 10:13:10 -0800 Subject: 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. --- opcodes/ChangeLog | 6 ++++++ opcodes/i386-dis.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 8f080b6..4d8b866 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2014-01-09 Bradley Nelson + Roland McGrath + + * i386-dis.c (print_insn): Do not touch all_prefixes[-1] when + last_rex_prefix is -1. + 2014-01-08 H.J. Lu * i386-gen.c (process_copyright): Update copyright year to 2014. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 2c28e52..f2ec8c4 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. */ -- cgit v1.1