diff options
author | Szabolcs Nagy <nsz@port70.net> | 2015-03-22 18:32:55 +0000 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2015-03-23 12:28:49 -0400 |
commit | 32dee9b9b1e557a73cc4427455cd00cb2571436c (patch) | |
tree | 4a449ad0502c4591e977e8e982a0adc8d1633bf0 /src/regex/regcomp.c | |
parent | 11d1e2e2ded07673411ba872c1e3d0096dc79439 (diff) | |
download | musl-32dee9b9b1e557a73cc4427455cd00cb2571436c.tar.gz |
do not treat \0 as a backref in BRE
The valid BRE backref tokens are \1 .. \9, and 0 is not a special
character either so \0 is undefined by the standard.
Such undefined escaped characters are treated as literal characters
currently, following existing practice, so \0 is the same as 0.
Diffstat (limited to 'src/regex/regcomp.c')
-rw-r--r-- | src/regex/regcomp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/regex/regcomp.c b/src/regex/regcomp.c index 4d80cb1c..dfa9727c 100644 --- a/src/regex/regcomp.c +++ b/src/regex/regcomp.c @@ -839,7 +839,7 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s) s--; break; default: - if (!ere && isdigit(*s)) { + if (!ere && (unsigned)*s-'1' < 9) { /* back reference */ int val = *s - '0'; node = tre_ast_new_literal(ctx->mem, BACKREF, val, ctx->position); |