From: K.Kosako Date: Thu, 3 Aug 2017 03:53:46 +0000 (+0900) Subject: fix infinite recursive call by zero repetition X-Git-Tag: v6.5.0^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91f4fb719da32a36f30ac452e198d640266af6de;p=onig fix infinite recursive call by zero repetition --- diff --git a/src/regcomp.c b/src/regcomp.c index 45dc3b8..47023cb 100644 --- a/src/regcomp.c +++ b/src/regcomp.c @@ -2370,9 +2370,14 @@ get_char_length_tree1(Node* node, regex_t* reg, int* len, int level) { QuantNode* qn = QUANT_(node); if (qn->lower == qn->upper) { - r = get_char_length_tree1(NODE_BODY(node), reg, &tlen, level); - if (r == 0) - *len = distance_multiply(tlen, qn->lower); + if (qn->upper == 0) { + *len = 0; + } + else { + r = get_char_length_tree1(NODE_BODY(node), reg, &tlen, level); + if (r == 0) + *len = distance_multiply(tlen, qn->lower); + } } else r = GET_CHAR_LEN_VARLEN;