From: Szabolcs Nagy Date: Mon, 29 Feb 2016 15:04:46 +0000 (+0000) Subject: fix * at the start of a BRE subexpression X-Git-Tag: v1.1.15~96 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=39ea71fb8afddda879a1999f2a203dfdaf57a639;p=musl fix * at the start of a BRE subexpression commit 7eaa76fc2e7993582989d3838b1ac32dd8abac09 made * invalid at the start of a BRE subexpression, but it should be accepted as literal * there according to the standard. This patch does not fix subexpressions starting with ^*. --- diff --git a/src/regex/regcomp.c b/src/regex/regcomp.c index da6abd18..7a2864cd 100644 --- a/src/regex/regcomp.c +++ b/src/regex/regcomp.c @@ -889,7 +889,6 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s) s++; break; case '*': - return REG_BADPAT; case '{': case '+': case '?': @@ -978,9 +977,6 @@ static reg_errcode_t tre_parse(tre_parse_ctx_t *ctx) } parse_iter: - /* extension: repetitions are rejected after an empty node - eg. (+), |*, {2}, but assertions are not treated as empty - so ^* or $? are accepted currently. */ for (;;) { int min, max;