diff options
author | Barry Warsaw <barry@python.org> | 2000-07-09 22:27:10 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 2000-07-09 22:27:10 (GMT) |
commit | b78165566ef353187f00419cb9c1c18e5dae1383 (patch) | |
tree | e9419e5baa2932723b7b83c8e7a2ea1453f6f75f /Python | |
parent | a1ae88432d506f4d37f5e989cebafc1473718d4f (diff) | |
download | cpython-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')
-rw-r--r-- | Python/exceptions.c | 12 |
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; |