summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Hiscocks <steven@hiscocks.me.uk>2013-02-17 14:27:59 +0000
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2015-07-05 14:19:16 -0400
commit82ff2498de678de19076bb3f3cf34de210164c0f (patch)
treece072bd7436f84409d0d26678919da2a49492e4e
parent3813a8ab261dbab1b9667323b53cac01db11df4e (diff)
downloadpython-systemd-82ff2498de678de19076bb3f3cf34de210164c0f.tar.gz
systemd-python: fix memory leak in _reader and minor bugs
iternext now checks for error from get_next, and changed a DECREF to XDECREF rather than NULL check
-rw-r--r--systemd/_reader.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/systemd/_reader.c b/systemd/_reader.c
index 70676ac..b754014 100644
--- a/systemd/_reader.c
+++ b/systemd/_reader.c
@@ -326,8 +326,7 @@ Journal_seek(Journal *self, PyObject *args, PyObject *keywds)
PyErr_SetString(PyExc_ValueError, "Invalid value for whence");
}
- if (result)
- Py_DECREF(result);
+ Py_XDECREF(result);
if (PyErr_Occurred())
return NULL;
Py_RETURN_NONE;
@@ -498,6 +497,8 @@ Journal_iternext(PyObject *self)
Py_ssize_t dict_size;
dict = PyObject_CallMethod(self, "get_next", "");
+ if (PyErr_Occurred())
+ return NULL;
dict_size = PyDict_Size(dict);
if ((int64_t) dict_size > 0LL) {
return dict;