Commit d6bf45bc authored by Guido van Rossum's avatar Guido van Rossum

Fixed some details of printing the str() of an exception. This fixes

a core dump when __str__() returns a non-string, and plugs a memory
leak as well: the result of PyObject_Str() was never DECREFed.
parent f394f56c
......@@ -761,10 +761,14 @@ PyErr_Print()
/* only print colon if the str() of the
object is not the empty string
*/
if (s && strcmp(PyString_AsString(s), ""))
if (s == NULL)
err = -1;
else if (!PyString_Check(s) ||
PyString_GET_SIZE(s) != 0)
err = PyFile_WriteString(": ", f);
if (err == 0)
err = PyFile_WriteObject(v, f, Py_PRINT_RAW);
err = PyFile_WriteObject(s, f, Py_PRINT_RAW);
Py_XDECREF(s);
}
}
if (err == 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment