Fix buffer underrun in i386-dis.c.
authorRoland McGrath <mcgrathr@google.com>
Thu, 9 Jan 2014 18:13:10 +0000 (10:13 -0800)
committerRoland McGrath <mcgrathr@google.com>
Thu, 9 Jan 2014 19:22:59 +0000 (11:22 -0800)
opcodes/
* i386-dis.c (print_insn): Do not touch all_prefixes[-1] when
last_rex_prefix is -1.

opcodes/ChangeLog
opcodes/i386-dis.c

index 8f080b6d93971cc1314dbaf3970517de3c42d558..4d8b86602ebc52914f3af1d231e7848abdf8494a 100644 (file)
@@ -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.
index 2c28e52cc89666bf64da9b141a0050c03adbf4a8..f2ec8c4947ee7d4e16312aea5d65eb183fc216f2 100644 (file)
@@ -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.  */