summaryrefslogtreecommitdiffstats
path: root/Python/exceptions.c
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2000-07-09 22:27:10 (GMT)
committerBarry Warsaw <barry@python.org>2000-07-09 22:27:10 (GMT)
commitb78165566ef353187f00419cb9c1c18e5dae1383 (patch)
treee9419e5baa2932723b7b83c8e7a2ea1453f6f75f /Python/exceptions.c
parenta1ae88432d506f4d37f5e989cebafc1473718d4f (diff)
downloadcpython-b78165566ef353187f00419cb9c1c18e5dae1383.zip
cpython-b78165566ef353187f00419cb9c1c18e5dae1383.tar.gz
cpython-b78165566ef353187f00419cb9c1c18e5dae1383.tar.bz2
Exception__str__(): In case 1, be sure to decref the tmp local
variable. This crushes another memory leak. Slight rewrite included.
Diffstat (limited to 'Python/exceptions.c')
-rw-r--r--Python/exceptions.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/Python/exceptions.c b/Python/exceptions.c
index c32e15c..f766ba5 100644
--- a/Python/exceptions.c
+++ b/Python/exceptions.c
@@ -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;