mirror of
https://github.com/fluencelabs/musl
synced 2025-06-23 11:41:57 +00:00
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.
This commit is contained in:
committed by
Rich Felker
parent
11d1e2e2de
commit
32dee9b9b1
@ -839,7 +839,7 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s)
|
|||||||
s--;
|
s--;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (!ere && isdigit(*s)) {
|
if (!ere && (unsigned)*s-'1' < 9) {
|
||||||
/* back reference */
|
/* back reference */
|
||||||
int val = *s - '0';
|
int val = *s - '0';
|
||||||
node = tre_ast_new_literal(ctx->mem, BACKREF, val, ctx->position);
|
node = tre_ast_new_literal(ctx->mem, BACKREF, val, ctx->position);
|
||||||
|
Reference in New Issue
Block a user