bpo-31418: Fix an assertion failure in PyErr_WriteUnraisable() in case of an exception with a bad __module__ attribute. (#3539)

This commit is contained in:
Oren Milman 2017-09-14 01:30:05 +03:00 committed by Serhiy Storchaka
parent ace1ecc00b
commit f6e61df015
2 changed files with 3 additions and 1 deletions

View file

@ -0,0 +1,2 @@
Fix an assertion failure in `PyErr_WriteUnraisable()` in case of an
exception with a bad ``__module__`` attribute. Patch by Oren Milman.

View file

@ -961,7 +961,7 @@ PyErr_WriteUnraisable(PyObject *obj)
}
moduleName = _PyObject_GetAttrId(t, &PyId___module__);
if (moduleName == NULL) {
if (moduleName == NULL || !PyUnicode_Check(moduleName)) {
PyErr_Clear();
if (PyFile_WriteString("<unknown>", f) < 0)
goto done;