diff options
| author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2013-08-15 12:51:20 -0400 |
|---|---|---|
| committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2015-07-05 14:19:21 -0400 |
| commit | 39970127f2f05b39dc38f073dd3d60657edc8508 (patch) | |
| tree | 5bc86400657ba3b586e8bcd4d1d2628861b88243 /systemd/_reader.c | |
| parent | ec9078e45e25d7484b5f4e08dd69020f57e4d668 (diff) | |
| download | python-systemd-39970127f2f05b39dc38f073dd3d60657edc8508.tar.gz | |
systemd-python: check for oom, give nicer error messages
Diffstat (limited to 'systemd/_reader.c')
| -rw-r--r-- | systemd/_reader.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/systemd/_reader.c b/systemd/_reader.c index 3b1003b..bc5db19 100644 --- a/systemd/_reader.c +++ b/systemd/_reader.c @@ -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; |
