mirror of
https://github.com/fluencelabs/musl
synced 2025-05-28 15:11:34 +00:00
fix memory-corruption in regcomp with backslash followed by high byte
the regex parser handles the (undefined) case of an unexpected byte following a backslash as a literal. however, instead of correctly decoding a character, it was treating the byte value itself as a character. this was not only semantically unjustified, but turned out to be dangerous on archs where plain char is signed: bytes in the range 252-255 alias the internal codes -4 through -1 used for special types of literal nodes in the AST.
This commit is contained in:
parent
e626deeec8
commit
39dfd58417
@ -847,7 +847,7 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s)
|
||||
} else {
|
||||
/* extension: accept unknown escaped char
|
||||
as a literal */
|
||||
node = tre_ast_new_literal(ctx->mem, *s, *s, ctx->position);
|
||||
goto parse_literal;
|
||||
}
|
||||
ctx->position++;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user