mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Issue #6697: use %U format instead of _PyUnicode_AsString(), because
_PyUnicode_AsString() was not checked for error (NULL). The unicode string is no more truncated to 200 or 400 *bytes*.
This commit is contained in:
parent
50981b8242
commit
3f1af5c42e
6 changed files with 19 additions and 20 deletions
|
@ -295,9 +295,9 @@ func_set_code(PyFunctionObject *op, PyObject *value)
|
|||
PyTuple_GET_SIZE(op->func_closure));
|
||||
if (nclosure != nfree) {
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"%s() requires a code object with %zd free vars,"
|
||||
"%U() requires a code object with %zd free vars,"
|
||||
" not %zd",
|
||||
_PyUnicode_AsString(op->func_name),
|
||||
op->func_name,
|
||||
nclosure, nfree);
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -1295,10 +1295,15 @@ check_duplicates(PyObject *list)
|
|||
for (j = i + 1; j < n; j++) {
|
||||
if (PyList_GET_ITEM(list, j) == o) {
|
||||
o = class_name(o);
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"duplicate base class %.400s",
|
||||
o ? _PyUnicode_AsString(o) : "?");
|
||||
Py_XDECREF(o);
|
||||
if (o != NULL) {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"duplicate base class %U",
|
||||
o);
|
||||
Py_DECREF(o);
|
||||
} else {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"duplicate base class");
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue