From 036b3beca80cf2ccd6ffe98cf5d10eb8ee5e8b19 Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Mon, 26 Feb 2007 23:46:51 +0000 Subject: [PATCH] Fix SF bug #1669182. Handle string exceptions even if unraisable (ie in __del__). --- Misc/NEWS | 3 +++ Python/errors.c | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) 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, '.'); -- 2.50.1