diff src/cpu/x86/vm/interp_masm_x86_32.cpp @ 13034:ea79ab313e98

8027252: Crash in interpreter because get_unsigned_2_byte_index_at_bcp reads 4 bytes Summary: Use 2-byte loads to load indexes from the byte code stream to avoid out of bounds reads. Reviewed-by: coleenp, sspitsyn
author mgerdin
date Wed, 30 Oct 2013 15:35:25 +0100
parents 5ccbab1c69f3
children d3f14809b051
line wrap: on
line diff
--- a/src/cpu/x86/vm/interp_masm_x86_32.cpp	Mon Oct 28 21:41:48 2013 +0400
+++ b/src/cpu/x86/vm/interp_masm_x86_32.cpp	Wed Oct 30 15:35:25 2013 +0100
@@ -196,7 +196,7 @@
 
 void InterpreterMacroAssembler::get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset) {
   assert(bcp_offset >= 0, "bcp is still pointing to start of bytecode");
-  movl(reg, Address(rsi, bcp_offset));
+  load_unsigned_short(reg, Address(rsi, bcp_offset));
   bswapl(reg);
   shrl(reg, 16);
 }