From 06f45f8635e277a82080b350ca794435c1332a9d Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 12 Oct 2024 22:41:20 +0900 Subject: [PATCH] mruby-compiler (codegen): detect too-deep nesting error; fix #6270 --- mrbgems/mruby-compiler/core/codegen.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 7429b7e60..a920ad216 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -3066,6 +3066,7 @@ codegen(codegen_scope *s, node *tree, int val) if (s2 && s2->ainfo > 0) { ainfo = s2->ainfo; } + if (lv > 0xf) codegen_error(s, "too deep nesting"); if (ainfo > 0) { genop_2S(s, OP_ARGARY, cursp(), (ainfo<<4)|(lv & 0xf)); push(); push(); push(); /* ARGARY pushes 3 values at most */ @@ -3128,6 +3129,7 @@ codegen(codegen_scope *s, node *tree, int val) ainfo = (int)s2->ainfo; } if (ainfo < 0) codegen_error(s, "invalid yield (SyntaxError)"); + if (lv > 0xf) codegen_error(s, "too deep nesting"); push(); if (tree) { if (tree->car) {