Exception__str__(): In case 1, be sure to decref the tmp local

variable.  This crushes another memory leak.  Slight rewrite
included.
This commit is contained in:
Barry Warsaw 2000-07-09 22:27:10 +00:00
parent a1ae88432d
commit b78165566e
1 changed files with 8 additions and 4 deletions

View File

@ -231,7 +231,6 @@ static PyObject*
Exception__str__(PyObject* self, PyObject* args)
{
PyObject* out;
PyObject* tmp;
if (!PyArg_ParseTuple(args, "O", &self))
return NULL;
@ -245,11 +244,16 @@ Exception__str__(PyObject* self, PyObject* args)
out = PyString_FromString("");
break;
case 1:
if (!(tmp = PySequence_GetItem(args, 0)))
out = NULL;
else
{
PyObject* tmp = PySequence_GetItem(args, 0);
if (tmp) {
out = PyObject_Str(tmp);
Py_DECREF(tmp);
}
else
out = NULL;
break;
}
default:
out = PyObject_Str(args);
break;