systemd-python: check for oom, give nicer error messages

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2013-08-15 12:51:20 -04:00
parent c2748ce28c
commit 31f49d022a
2 changed files with 7 additions and 3 deletions

View file

@ -75,7 +75,7 @@ static int strv_converter(PyObject* obj, void *_result) {
assert(result);
if (!obj)
goto cleanup;
return 0;
if (obj == Py_None) {
*result = NULL;
@ -87,6 +87,10 @@ static int strv_converter(PyObject* obj, void *_result) {
len = PySequence_Length(obj);
*result = new0(char*, len + 1);
if (!*result) {
set_error(-ENOMEM, NULL, NULL);
return 0;
}
for (i = 0; i < len; i++) {
PyObject *item;
@ -154,7 +158,7 @@ static int Reader_init(Reader *self, PyObject *args, PyObject *keywds)
char **files = NULL;
static const char* const kwlist[] = {"flags", "path", "files", NULL};
if (!PyArg_ParseTupleAndKeywords(args, keywds, "|izO&", (char**) kwlist,
if (!PyArg_ParseTupleAndKeywords(args, keywds, "|izO&:__init__", (char**) kwlist,
&flags, &path, strv_converter, &files))
return -1;

View file

@ -159,7 +159,7 @@ static int Monitor_init(Monitor *self, PyObject *args, PyObject *keywds)
int r;
static const char* const kwlist[] = {"category", NULL};
if (!PyArg_ParseTupleAndKeywords(args, keywds, "|z", (char**) kwlist,
if (!PyArg_ParseTupleAndKeywords(args, keywds, "|z:__init__", (char**) kwlist,
&category))
return -1;