diff options
author | Logan Chien <logan.chien@mediatek.com> | 2014-09-11 17:36:05 +0800 |
---|---|---|
committer | Logan Chien <logan.chien@mediatek.com> | 2014-09-16 13:58:57 +0800 |
commit | be8d99c228a76e70a19c1122aabe111c25a2121c (patch) | |
tree | b7c2538a1245d2d6cb4dde7432be26ad12de0407 /runtime/dex_instruction_list.h | |
parent | 20ffc8757277dac7fd7a74e576c6185ae1292285 (diff) | |
download | android_art-be8d99c228a76e70a19c1122aabe111c25a2121c.tar.gz android_art-be8d99c228a76e70a19c1122aabe111c25a2121c.tar.bz2 android_art-be8d99c228a76e70a19c1122aabe111c25a2121c.zip |
Fix sput-wide verification flag.
The vA register for sput-wide is a wide register. Thus, the
verification flag should be kVerifyRegAWide instead of
kVerifyRegA.
Without this change, the invalid Dex bytecode won't be
rejected by VerifyInstruction(). As the result, the
DCHECK_LT() in register_line-inl.h will abort the program.
Change-Id: I24b746d8a85ddaf811d9aebed12a3dd9f97d755f
Diffstat (limited to 'runtime/dex_instruction_list.h')
-rw-r--r-- | runtime/dex_instruction_list.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/dex_instruction_list.h b/runtime/dex_instruction_list.h index 64c9185c87..8612666296 100644 --- a/runtime/dex_instruction_list.h +++ b/runtime/dex_instruction_list.h @@ -122,7 +122,7 @@ V(0x65, SGET_CHAR, "sget-char", k21c, true, kFieldRef, kContinue | kThrow | kLoad | kRegBFieldOrConstant, kVerifyRegA | kVerifyRegBField) \ V(0x66, SGET_SHORT, "sget-short", k21c, true, kFieldRef, kContinue | kThrow | kLoad | kRegBFieldOrConstant, kVerifyRegA | kVerifyRegBField) \ V(0x67, SPUT, "sput", k21c, false, kFieldRef, kContinue | kThrow | kStore | kRegBFieldOrConstant, kVerifyRegA | kVerifyRegBField) \ - V(0x68, SPUT_WIDE, "sput-wide", k21c, false, kFieldRef, kContinue | kThrow | kStore | kRegBFieldOrConstant, kVerifyRegA | kVerifyRegBField) \ + V(0x68, SPUT_WIDE, "sput-wide", k21c, false, kFieldRef, kContinue | kThrow | kStore | kRegBFieldOrConstant, kVerifyRegAWide | kVerifyRegBField) \ V(0x69, SPUT_OBJECT, "sput-object", k21c, false, kFieldRef, kContinue | kThrow | kStore | kRegBFieldOrConstant, kVerifyRegA | kVerifyRegBField) \ V(0x6A, SPUT_BOOLEAN, "sput-boolean", k21c, false, kFieldRef, kContinue | kThrow | kStore | kRegBFieldOrConstant, kVerifyRegA | kVerifyRegBField) \ V(0x6B, SPUT_BYTE, "sput-byte", k21c, false, kFieldRef, kContinue | kThrow | kStore | kRegBFieldOrConstant, kVerifyRegA | kVerifyRegBField) \ |