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 | |
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.
-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); |