[3.9] bpo-20028: Keep original exception when PyUnicode_GetLength return -1 (GH-28832) (GH-28835)

This commit is contained in:
Dong-hee Na 2021-10-10 01:13:44 +09:00 committed by GitHub
parent 6f3bc5eee6
commit e4fcb6fd3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 0 deletions

View File

@ -246,6 +246,9 @@ _set_char_or_none(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt
return -1;
}
Py_ssize_t len = PyUnicode_GetLength(src);
if (len < 0) {
return -1;
}
if (len > 1) {
PyErr_Format(PyExc_TypeError,
"\"%s\" must be a 1-character string",
@ -276,6 +279,9 @@ _set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
return -1;
}
Py_ssize_t len = PyUnicode_GetLength(src);
if (len < 0) {
return -1;
}
if (len > 1) {
PyErr_Format(PyExc_TypeError,
"\"%s\" must be a 1-character string",