diff options
author | Pablo Galindo <Pablogsal@gmail.com> | 2021-03-29 23:24:49 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-29 23:24:49 (GMT) |
commit | 92a02c1f7e2dcdc62913a4236589e7e5d96172b9 (patch) | |
tree | 32c192413440c0610c62d72fe12647a6c05ec4c2 /Parser/tokenizer.c | |
parent | 09b90a037d18f5d4acdf1b14082e57bda78e85d3 (diff) | |
download | cpython-92a02c1f7e2dcdc62913a4236589e7e5d96172b9.zip cpython-92a02c1f7e2dcdc62913a4236589e7e5d96172b9.tar.gz cpython-92a02c1f7e2dcdc62913a4236589e7e5d96172b9.tar.bz2 |
Fix tokenizer error when raw decoding null bytes (GH-25080)
Diffstat (limited to 'Parser/tokenizer.c')
-rw-r--r-- | Parser/tokenizer.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index d18fffa..ad32293 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -813,6 +813,9 @@ tok_readline_raw(struct tok_state *tok) tok_concatenate_interactive_new_line(tok, line) == -1) { return 0; } + if (*tok->inp == '\0') { + return 0; + } tok->inp = strchr(tok->inp, '\0'); } while (tok->inp[-1] != '\n'); return 1; @@ -963,7 +966,7 @@ tok_underflow_file(struct tok_state *tok) { if (tok->lineno > 2) { 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)) { return 0; |