Permalink
Browse files

Fixed disclosure of local variables by `eval`; ref #3710

This patch fixes the latter part of #3710. We need to change
`struct REnv` to fix the former part of the issue.
  • Loading branch information...
matz committed Jun 19, 2017
1 parent 4d3027b commit 0de7eec628d5751ae4ca99c3f10f6f31bf3d985c
Showing with 2 additions and 2 deletions.
  1. +2 −2 mrbgems/mruby-eval/src/eval.c
@@ -205,9 +205,9 @@ create_proc_from_string(mrb_state *mrb, char *s, int len, mrb_value binding, con
if (!e) e = c->ci[-1].env;
e = (struct REnv*)mrb_obj_alloc(mrb, MRB_TT_ENV, (struct RClass*)e);
e->cxt.c = c;
e->cioff = c->ci - c->cibase - 1;
e->cioff = c->ci - c->cibase;
e->stack = c->ci->stackent;
MRB_SET_ENV_STACK_LEN(e, c->ci[-1].proc->body.irep->nlocals);
MRB_SET_ENV_STACK_LEN(e, c->ci->proc->body.irep->nlocals);
c->ci->target_class = proc->target_class;
c->ci->env = 0;
proc->env = e;

0 comments on commit 0de7eec

Please sign in to comment.