|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
From 31f49d022aee9bbb356e52e5483f182d7ffa8d2f Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
Date: Thu, 15 Aug 2013 12:51:20 -0400
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
Subject: [PATCH] systemd-python: check for oom, give nicer error messages
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
---
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
src/python-systemd/_reader.c | 8 ++++++--
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
src/python-systemd/login.c | 2 +-
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
2 files changed, 7 insertions(+), 3 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
index 3b1003b..bc5db19 100644
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
--- a/src/python-systemd/_reader.c
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+++ b/src/python-systemd/_reader.c
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
@@ -75,7 +75,7 @@ static int strv_converter(PyObject* obj, void *_result) {
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
assert(result);
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
if (!obj)
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
- goto cleanup;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+ return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
if (obj == Py_None) {
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
*result = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
@@ -87,6 +87,10 @@ static int strv_converter(PyObject* obj, void *_result) {
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
len = PySequence_Length(obj);
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
*result = new0(char*, len + 1);
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+ if (!*result) {
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+ set_error(-ENOMEM, NULL, NULL);
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+ return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+ }
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
for (i = 0; i < len; i++) {
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
PyObject *item;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
@@ -154,7 +158,7 @@ static int Reader_init(Reader *self, PyObject *args, PyObject *keywds)
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
char **files = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
static const char* const kwlist[] = {"flags", "path", "files", NULL};
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
- if (!PyArg_ParseTupleAndKeywords(args, keywds, "|izO&", (char**) kwlist,
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+ if (!PyArg_ParseTupleAndKeywords(args, keywds, "|izO&:__init__", (char**) kwlist,
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
&flags, &path, strv_converter, &files))
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
return -1;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
diff --git a/src/python-systemd/login.c b/src/python-systemd/login.c
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
index 1e86193..dd2edbc 100644
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
--- a/src/python-systemd/login.c
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+++ b/src/python-systemd/login.c
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
@@ -159,7 +159,7 @@ static int Monitor_init(Monitor *self, PyObject *args, PyObject *keywds)
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
int r;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
static const char* const kwlist[] = {"category", NULL};
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
- if (!PyArg_ParseTupleAndKeywords(args, keywds, "|z", (char**) kwlist,
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
+ if (!PyArg_ParseTupleAndKeywords(args, keywds, "|z:__init__", (char**) kwlist,
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
&category))
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
return -1;
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
--
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
1.8.2.562.g931e949
|
|
Zbigniew Jędrzejewski-Szmek |
dc4617 |
|