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_switch_impl.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/interpreter/interpreter_switch_impl.cc') diff --git a/runtime/interpreter/interpreter_switch_impl.cc b/runtime/interpreter/interpreter_switch_impl.cc index c1d24f5..deb897a 100644 --- a/runtime/interpreter/interpreter_switch_impl.cc +++ b/runtime/interpreter/interpreter_switch_impl.cc @@ -163,9 +163,9 @@ JValue ExecuteSwitchImpl(Thread* self, MethodHelper& mh, const DexFile::CodeItem break; case Instruction::MOVE_EXCEPTION: { PREAMBLE(); - Throwable* exception = self->GetException(NULL); - self->ClearException(); + Throwable* exception = self->GetException(nullptr); shadow_frame.SetVRegReference(inst->VRegA_11x(inst_data), exception); + self->ClearException(); inst = inst->Next_1xx(); break; } -- cgit v1.1