summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS3
-rw-r--r--Python/errors.c6
2 files changed, 8 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 9a46c4255d..8b0e7e21db 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@ What's New in Python 2.5.1c1?
Core and builtins
-----------------
+- Bug #1669182: prevent crash when trying to print an unraisable error
+ from a string exception.
+
- Bug #1653736: Properly discard third argument to slot_nb_inplace_power.
- SF #151204: enumerate() now raises an Overflow error at sys.maxint items.
diff --git a/Python/errors.c b/Python/errors.c
index f31f025112..bc77c3c1b7 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -590,7 +590,11 @@ PyErr_WriteUnraisable(PyObject *obj)
PyFile_WriteString("Exception ", f);
if (t) {
PyObject* moduleName;
- char* className = PyExceptionClass_Name(t);
+ char* className = NULL;
+ if (PyExceptionClass_Check(t))
+ className = PyExceptionClass_Name(t);
+ else if (PyString_Check(t))
+ className = PyString_AS_STRING(t);
if (className != NULL) {
char *dot = strrchr(className, '.');