summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-07-01 12:44:24 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-07-01 12:45:27 +0900
commit7d99830211ff50e1068dd1967a7abbe5f03db12f (patch)
tree42e081831a84d092833d3e268daddbcf8710f23e
parent466a18b0d3a9ac487c713411bd77a918f72a83fb (diff)
downloadmruby-7d99830211ff50e1068dd1967a7abbe5f03db12f.tar.gz
mruby-7d99830211ff50e1068dd1967a7abbe5f03db12f.zip
`super` may be called from a block; fix #3723
-rw-r--r--src/vm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index 43663012e..93f2eceba 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1684,6 +1684,8 @@ RETRY_TRY_BLOCK:
else {
struct REnv *e = uvenv(mrb, lv-1);
if (!e) goto L_NOSUPER;
+ if (MRB_ENV_STACK_LEN(e) <= m1+r+m2+1)
+ goto L_NOSUPER;
stack = e->stack + 1;
}
if (r == 0) {