From: K.Kosako Date: Sun, 25 Aug 2019 14:41:42 +0000 (+0900) Subject: fix invalid position of return value check X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c0fca743494113d218d06fff0dc8f12abac8bb4b;p=onig fix invalid position of return value check --- diff --git a/src/regcomp.c b/src/regcomp.c index b089b67..6b64fb9 100644 --- a/src/regcomp.c +++ b/src/regcomp.c @@ -3247,8 +3247,10 @@ set_empty_repeat_node_trav(Node* node, Node* empty, ScanEnv* env) break; case NODE_BAG: - if (IS_NOT_NULL(NODE_BODY(node))) + if (IS_NOT_NULL(NODE_BODY(node))) { r = set_empty_repeat_node_trav(NODE_BODY(node), empty, env); + if (r != 0) return r; + } { BagNode* en = BAG_(node); @@ -3259,7 +3261,6 @@ set_empty_repeat_node_trav(Node* node, Node* empty, ScanEnv* env) } } else if (en->type == BAG_IF_ELSE) { - if (r != 0) return r; if (IS_NOT_NULL(en->te.Then)) { r = set_empty_repeat_node_trav(en->te.Then, empty, env); if (r != 0) return r;