diff options
author | Oren Milman <orenmn@gmail.com> | 2017-09-13 22:30:05 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-09-13 22:30:05 (GMT) |
commit | f6e61df01536493f1280cd07639c7ff9bffb2cdc (patch) | |
tree | d0a96b29fe228e394853da6c4246f9252a786a28 | |
parent | ace1ecc00b35a8b1dc6e352d547dde07913017bb (diff) | |
download | cpython-f6e61df01536493f1280cd07639c7ff9bffb2cdc.zip cpython-f6e61df01536493f1280cd07639c7ff9bffb2cdc.tar.gz cpython-f6e61df01536493f1280cd07639c7ff9bffb2cdc.tar.bz2 |
bpo-31418: Fix an assertion failure in PyErr_WriteUnraisable() in case of an exception with a bad __module__ attribute. (#3539)
-rw-r--r-- | Misc/NEWS.d/next/Core and Builtins/2017-09-13-13-03-52.bpo-31418.rS-FlC.rst | 2 | ||||
-rw-r--r-- | Python/errors.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/Misc/NEWS.d/next/Core and Builtins/2017-09-13-13-03-52.bpo-31418.rS-FlC.rst b/Misc/NEWS.d/next/Core and Builtins/2017-09-13-13-03-52.bpo-31418.rS-FlC.rst new file mode 100644 index 0000000..6d6cbd8 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2017-09-13-13-03-52.bpo-31418.rS-FlC.rst @@ -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. diff --git a/Python/errors.c b/Python/errors.c index 3cb6d53..5709fdd 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -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; |