bpo-34940: Fix the error handling in _check_for_legacy_statements(). (GH-9764)
This commit is contained in:
parent
859c068e52
commit
a4b48f194a
|
@ -2906,7 +2906,7 @@ _check_for_legacy_statements(PySyntaxErrorObject *self, Py_ssize_t start)
|
|||
*/
|
||||
static PyObject *print_prefix = NULL;
|
||||
static PyObject *exec_prefix = NULL;
|
||||
Py_ssize_t text_len = PyUnicode_GET_LENGTH(self->text);
|
||||
Py_ssize_t text_len = PyUnicode_GET_LENGTH(self->text), match;
|
||||
int kind = PyUnicode_KIND(self->text);
|
||||
void *data = PyUnicode_DATA(self->text);
|
||||
|
||||
|
@ -2929,9 +2929,12 @@ _check_for_legacy_statements(PySyntaxErrorObject *self, Py_ssize_t start)
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
if (PyUnicode_Tailmatch(self->text, print_prefix,
|
||||
start, text_len, -1)) {
|
||||
|
||||
match = PyUnicode_Tailmatch(self->text, print_prefix,
|
||||
start, text_len, -1);
|
||||
if (match == -1) {
|
||||
return -1;
|
||||
}
|
||||
if (match) {
|
||||
return _set_legacy_print_statement_msg(self, start);
|
||||
}
|
||||
|
||||
|
@ -2942,10 +2945,17 @@ _check_for_legacy_statements(PySyntaxErrorObject *self, Py_ssize_t start)
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
if (PyUnicode_Tailmatch(self->text, exec_prefix,
|
||||
start, text_len, -1)) {
|
||||
Py_XSETREF(self->msg,
|
||||
PyUnicode_FromString("Missing parentheses in call to 'exec'"));
|
||||
match = PyUnicode_Tailmatch(self->text, exec_prefix, start, text_len, -1);
|
||||
if (match == -1) {
|
||||
return -1;
|
||||
}
|
||||
if (match) {
|
||||
PyObject *msg = PyUnicode_FromString("Missing parentheses in call "
|
||||
"to 'exec'");
|
||||
if (msg == NULL) {
|
||||
return -1;
|
||||
}
|
||||
Py_XSETREF(self->msg, msg);
|
||||
return 1;
|
||||
}
|
||||
/* Fall back to the default error message */
|
||||
|
|
Loading…
Reference in New Issue