summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKazuki Tsujimoto <[email protected]>2012-05-04 18:34:13 +0900
committerKazuki Tsujimoto <[email protected]>2012-05-04 18:34:13 +0900
commit7e1df10517f7d9163b0e20c17961b82754de2907 (patch)
treeb9e98f53222a9db21fb0d892ccd45e83e7362752
parent5a6193ffddf6c0d8b3d564a04133d66baf54e511 (diff)
downloadmruby-7e1df10517f7d9163b0e20c17961b82754de2907.tar.gz
mruby-7e1df10517f7d9163b0e20c17961b82754de2907.zip
Fix SEGV when returning from terminated method
-rw-r--r--src/vm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index 9915200de..543b56c19 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -992,6 +992,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
case OP_R_RETURN:
if (proc->env->cioff < 0) {
localjump_error(mrb, "return");
+ goto L_RAISE;
}
ci = mrb->ci = mrb->cibase + proc->env->cioff;
break;