From 5c0049067a953d7a2383d3064a84a32d1efa3a24 Mon Sep 17 00:00:00 2001 From: Sebastien Hertz Date: Wed, 21 May 2014 10:07:42 +0200 Subject: Secure move-exception in intepreter Copies exception into the shadow frame before clearing it from its thread so it's always reachable. Change-Id: Ifdc68280424f5099aacf0724da94889881a99551 --- runtime/interpreter/interpreter_goto_table_impl.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/interpreter/interpreter_goto_table_impl.cc') diff --git a/runtime/interpreter/interpreter_goto_table_impl.cc b/runtime/interpreter/interpreter_goto_table_impl.cc index e0f9e5f958..9a274f618a 100644 --- a/runtime/interpreter/interpreter_goto_table_impl.cc +++ b/runtime/interpreter/interpreter_goto_table_impl.cc @@ -234,9 +234,9 @@ JValue ExecuteGotoImpl(Thread* self, MethodHelper& mh, const DexFile::CodeItem* HANDLE_INSTRUCTION_END(); HANDLE_INSTRUCTION_START(MOVE_EXCEPTION) { - Throwable* exception = self->GetException(NULL); - self->ClearException(); + Throwable* exception = self->GetException(nullptr); shadow_frame.SetVRegReference(inst->VRegA_11x(inst_data), exception); + self->ClearException(); ADVANCE(1); } HANDLE_INSTRUCTION_END(); -- cgit v1.2.3