diff options
author | Lysandros Nikolaou <lisandrosnik@gmail.com> | 2023-10-17 22:34:56 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-17 22:34:56 (GMT) |
commit | 1af7b7db0d1cd6756ecb6081364fdd1378b1605c (patch) | |
tree | f25821bfd3d167c47728fd4ca17481300e296249 /Parser/pegen_errors.c | |
parent | 73ebe2f881ac2ffb4d3d23b8693213fea53357e9 (diff) | |
download | cpython-1af7b7db0d1cd6756ecb6081364fdd1378b1605c.zip cpython-1af7b7db0d1cd6756ecb6081364fdd1378b1605c.tar.gz cpython-1af7b7db0d1cd6756ecb6081364fdd1378b1605c.tar.bz2 |
[3.11] gh-107450: Check for overflow in the tokenizer and fix overflow test (GH-110832) (#110939)
(cherry picked from commit a1ac5590e0f8fe008e5562d22edab65d0c1c5507)
Co-authored-by: Filipe LaĆns <lains@riseup.net>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Parser/pegen_errors.c')
-rw-r--r-- | Parser/pegen_errors.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/Parser/pegen_errors.c b/Parser/pegen_errors.c index ea5c4e2..0053561 100644 --- a/Parser/pegen_errors.c +++ b/Parser/pegen_errors.c @@ -101,6 +101,10 @@ _Pypegen_tokenizer_error(Parser *p) msg = "unexpected character after line continuation character"; break; } + case E_COLUMNOVERFLOW: + PyErr_SetString(PyExc_OverflowError, + "Parser column offset overflow - source line is too big"); + return -1; default: msg = "unknown parsing error"; } @@ -224,12 +228,6 @@ _PyPegen_raise_error(Parser *p, PyObject *errtype, const char *errmsg, ...) col_offset = 0; } else { const char* start = p->tok->buf ? p->tok->line_start : p->tok->buf; - if (p->tok->cur - start > INT_MAX) { - PyErr_SetString(PyExc_OverflowError, - "Parser column offset overflow - source line is too big"); - p->error_indicator = 1; - return NULL; - } col_offset = Py_SAFE_DOWNCAST(p->tok->cur - start, intptr_t, int); } } else { |