From c2b2bec9e239cb9bca1186e546fe6483ca9e2024 Mon Sep 17 00:00:00 2001 From: Ichito Nagata Date: Wed, 6 Jun 2018 15:04:58 +0900 Subject: Revert "Fix heap use after free on mruby-aws-sigv4." This reverts commit b8869498b7b1458af1cf2a5ccc7644849f826230. --- src/vm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/vm.c b/src/vm.c index ba2c32972..f1eae5ba5 100644 --- a/src/vm.c +++ b/src/vm.c @@ -528,8 +528,6 @@ mrb_exec_irep(mrb_state *mrb, mrb_value self, struct RProc *p) return MRB_PROC_CFUNC(p)(mrb, self); } ci->nregs = p->body.irep->nregs; - ci->env = MRB_PROC_ENV(p); - if (ci->env) ci->env->stack[0] = self; if (ci->argc < 0) keep = 3; else keep = ci->argc + 2; if (ci->nregs < keep) { -- cgit v1.2.3 From 1dbeda5c9cfe60b0dbdf94a8fea7e12a721ff162 Mon Sep 17 00:00:00 2001 From: Ichito Nagata Date: Wed, 6 Jun 2018 15:35:41 +0900 Subject: add test for eval --- mrbgems/mruby-eval/test/eval.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mrbgems/mruby-eval/test/eval.rb b/mrbgems/mruby-eval/test/eval.rb index 66ca1fcdb..be43412f7 100644 --- a/mrbgems/mruby-eval/test/eval.rb +++ b/mrbgems/mruby-eval/test/eval.rb @@ -99,3 +99,19 @@ assert('Object#instance_eval with begin-rescue-ensure execution order') do hell_raiser = HellRaiser.new assert_equal([:enter_raise_hell, :begin, :rescue, :ensure], hell_raiser.raise_hell) end + +assert('Kernel.#eval(strinng) Issue #4021') do + assert_equal('FOO') { (eval <<'EOS').call } +foo = "FOO" +Proc.new { foo } +EOS + assert_equal('FOO') { + def do_eval(code) + eval(code) + end + do_eval(<<'EOS').call +foo = "FOO" +Proc.new { foo } +EOS + } +end -- cgit v1.2.3