summaryrefslogtreecommitdiffstats
path: root/Parser/tokenizer.c
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2021-03-29 23:24:49 (GMT)
committerGitHub <noreply@github.com>2021-03-29 23:24:49 (GMT)
commit92a02c1f7e2dcdc62913a4236589e7e5d96172b9 (patch)
tree32c192413440c0610c62d72fe12647a6c05ec4c2 /Parser/tokenizer.c
parent09b90a037d18f5d4acdf1b14082e57bda78e85d3 (diff)
downloadcpython-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.c5
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;