]> Git Repo - qemu.git/commitdiff
i386: hvf: Fix overrun of _decode_tbl1
authorRoman Bolshakov <[email protected]>
Mon, 3 Dec 2018 10:04:14 +0000 (13:04 +0300)
committerPeter Maydell <[email protected]>
Mon, 3 Dec 2018 15:09:55 +0000 (15:09 +0000)
Single opcode instructions in ff group were incorrectly processed
because an overrun of _decode_tbl1[0xff] resulted in access of
_decode_tbl2[0x0]. Thus, decode_sldtgroup was called instead of
decode_ffgroup:
  7d71: decode_sldtgroup: 1
  Unimplemented handler (7d71) for 108 (ff 0)

While at it correct maximum length for _decode_tbl2 and _decode_tbl3.

Signed-off-by: Roman Bolshakov <[email protected]>
Reviewed-by: Paolo Bonzini <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
target/i386/hvf/x86_decode.c

index 2e33b69541d53f77e6d73059db1bfb9fb194d807..d125a6ef83254243915ca63973e057c2d26b9701 100644 (file)
@@ -454,9 +454,9 @@ struct decode_x87_tbl {
 struct decode_tbl invl_inst = {0x0, 0, 0, false, NULL, NULL, NULL, NULL,
                                decode_invalid};
 
-struct decode_tbl _decode_tbl1[255];
-struct decode_tbl _decode_tbl2[255];
-struct decode_x87_tbl _decode_tbl3[255];
+struct decode_tbl _decode_tbl1[256];
+struct decode_tbl _decode_tbl2[256];
+struct decode_x87_tbl _decode_tbl3[256];
 
 static void decode_x87_ins(CPUX86State *env, struct x86_decode *decode)
 {
This page took 0.029887 seconds and 4 git commands to generate.