diff -r 77c41d9c4253 -r 0264f170da65 hotspot/src/cpu/x86/vm/frame_x86.cpp --- a/hotspot/src/cpu/x86/vm/frame_x86.cpp Mon Oct 24 11:48:30 2016 -0700 +++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp Mon Oct 24 14:12:32 2016 -0700 @@ -203,8 +203,15 @@ } // construct the potential sender + frame sender(sender_sp, sender_unextended_sp, saved_fp, sender_pc); - return sender.is_entry_frame_valid(thread); + + // Validate the JavaCallWrapper an entry frame must have + address jcw = (address)sender.entry_frame_call_wrapper(); + + bool jcw_safe = (jcw < thread->stack_base()) && (jcw > (address)sender.fp()); + + return jcw_safe; } CompiledMethod* nm = sender_blob->as_compiled_method_or_null();