From: K.Kosako Date: Wed, 11 Sep 2019 04:40:36 +0000 (+0900) Subject: increment parse depth in parse_branch() X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3dad5c0251e623a2902329018d6b7ee2c3cf91f7;p=onig increment parse depth in parse_branch() --- diff --git a/src/regparse.c b/src/regparse.c index e5b397e..b8f25c7 100644 --- a/src/regparse.c +++ b/src/regparse.c @@ -8253,6 +8253,8 @@ parse_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, Node *node, **headp; *top = NULL; + INC_PARSE_DEPTH(env->parse_depth); + r = parse_exp(&node, tok, term, src, end, env, group_head); if (r < 0) { onig_node_free(node); @@ -8263,7 +8265,7 @@ parse_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, *top = node; } else { - *top = node_new_list(node, NULL); + *top = node_new_list(node, NULL); if (IS_NULL(*top)) { onig_node_free(node); return ONIGERR_MEMORY; @@ -8289,6 +8291,7 @@ parse_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, } } + env->parse_depth--; return r; }