chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
systemd-python: fix memory leak in _reader and minor bugs
[elogind.git]
/
src
/
python-systemd
/
_reader.c
diff --git
a/src/python-systemd/_reader.c
b/src/python-systemd/_reader.c
index 481da245e91efc4be004fa3d5397e078db9f78af..b754014e9bc50d8a27bceac0ecdf5a3ba03a4182 100644
(file)
--- a/
src/python-systemd/_reader.c
+++ b/
src/python-systemd/_reader.c
@@
-57,7
+57,7
@@
Journal_init(Journal *self, PyObject *args, PyObject *keywds)
char *path=NULL;
static char *kwlist[] = {"flags", "path", NULL};
char *path=NULL;
static char *kwlist[] = {"flags", "path", NULL};
- if (! PyArg_ParseTupleAndKeywords(args, keywds, "|i
s
", kwlist,
+ if (! PyArg_ParseTupleAndKeywords(args, keywds, "|i
z
", kwlist,
&flags, &path))
return 1;
&flags, &path))
return 1;
@@
-326,8
+326,7
@@
Journal_seek(Journal *self, PyObject *args, PyObject *keywds)
PyErr_SetString(PyExc_ValueError, "Invalid value for whence");
}
PyErr_SetString(PyExc_ValueError, "Invalid value for whence");
}
- if (result)
- Py_DECREF(result);
+ Py_XDECREF(result);
if (PyErr_Occurred())
return NULL;
Py_RETURN_NONE;
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", "");
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;
dict_size = PyDict_Size(dict);
if ((int64_t) dict_size > 0LL) {
return dict;