summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/codegen.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-02-13 19:31:06 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-02-13 19:31:06 +0900
commitecb6ac8b4aca56582ebed3e955178a0ad6c77d5d (patch)
tree1ad2811338db6aa7277b2a2f268e0633b340fcaa /mrbgems/mruby-compiler/core/codegen.c
parentc2ddcd451724c9399014ab24a6d47815ed1a1c7d (diff)
downloadmruby-ecb6ac8b4aca56582ebed3e955178a0ad6c77d5d.tar.gz
mruby-ecb6ac8b4aca56582ebed3e955178a0ad6c77d5d.zip
Fixed codegen error of redo in rescue; fix #3422
The issue (and the fix) was reported by https://hackerone.com/dgaletic
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index 778b6fe0f..23e036d49 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -2038,7 +2038,7 @@ codegen(codegen_scope *s, node *tree, int val)
break;
case NODE_REDO:
- if (!s->loop) {
+ if (!s->loop || s->loop->type == LOOP_BEGIN || s->loop->type == LOOP_RESCUE) {
raise_error(s, "unexpected redo");
}
else {