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:
Victor Stinner 2010-03-12 17:00:41 +00:00
parent 50981b8242
commit 3f1af5c42e
6 changed files with 19 additions and 20 deletions

View file

@ -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;
}
}