mirror of https://github.com/python/cpython
bpo-44143: Fix crash in the parser when raising tokenizer errors with an exception set (GH-26144)
This commit is contained in:
parent
086b5c6ce1
commit
80b089179f
|
@ -242,6 +242,7 @@ class ExceptionTests(unittest.TestCase):
|
|||
""", 9, 24)
|
||||
check("pass\npass\npass\n(1+)\npass\npass\npass", 4, 4)
|
||||
check("(1+)", 1, 4)
|
||||
check("[interesting\nfoo()\n", 1, 1)
|
||||
|
||||
# Errors thrown by symtable.c
|
||||
check('x = [(yield i) for i in range(3)]', 1, 5)
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Fixed a crash in the parser that manifest when raising tokenizer errors when
|
||||
an existing exception was present. Patch by Pablo Galindo.
|
|
@ -1259,6 +1259,7 @@ _PyPegen_check_tokenizer_errors(Parser *p) {
|
|||
if (p->tok->level != 0) {
|
||||
int error_lineno = p->tok->parenlinenostack[p->tok->level-1];
|
||||
if (current_err_line > error_lineno) {
|
||||
PyErr_Clear();
|
||||
raise_unclosed_parentheses_error(p);
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue