Fix tokenizer error when raw decoding null bytes (GH-25080)

This commit is contained in:
Pablo Galindo 2021-03-30 00:24:49 +01:00 committed by GitHub
parent 09b90a037d
commit 92a02c1f7e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -813,6 +813,9 @@ tok_readline_raw(struct tok_state *tok)
tok_concatenate_interactive_new_line(tok, line) == -1) { tok_concatenate_interactive_new_line(tok, line) == -1) {
return 0; return 0;
} }
if (*tok->inp == '\0') {
return 0;
}
tok->inp = strchr(tok->inp, '\0'); tok->inp = strchr(tok->inp, '\0');
} while (tok->inp[-1] != '\n'); } while (tok->inp[-1] != '\n');
return 1; return 1;
@ -963,7 +966,7 @@ tok_underflow_file(struct tok_state *tok) {
if (tok->lineno > 2) { if (tok->lineno > 2) {
tok->decoding_state = STATE_NORMAL; tok->decoding_state = STATE_NORMAL;
} }
else if (!check_coding_spec(tok->cur, tok->end - tok->cur, else if (!check_coding_spec(tok->cur, strlen(tok->cur),
tok, fp_setreadl)) tok, fp_setreadl))
{ {
return 0; return 0;