Add patch to fix the Python module
This commit is contained in:
parent
b2cc255299
commit
dc4617f304
59
systemd-python-check-for-oom-give-nicer-error-messag.patch
Normal file
59
systemd-python-check-for-oom-give-nicer-error-messag.patch
Normal file
@ -0,0 +1,59 @@
|
||||
From 31f49d022aee9bbb356e52e5483f182d7ffa8d2f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Thu, 15 Aug 2013 12:51:20 -0400
|
||||
Subject: [PATCH] systemd-python: check for oom, give nicer error messages
|
||||
|
||||
---
|
||||
src/python-systemd/_reader.c | 8 ++++++--
|
||||
src/python-systemd/login.c | 2 +-
|
||||
2 files changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c
|
||||
index 3b1003b..bc5db19 100644
|
||||
--- a/src/python-systemd/_reader.c
|
||||
+++ b/src/python-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;
|
||||
|
||||
diff --git a/src/python-systemd/login.c b/src/python-systemd/login.c
|
||||
index 1e86193..dd2edbc 100644
|
||||
--- a/src/python-systemd/login.c
|
||||
+++ b/src/python-systemd/login.c
|
||||
@@ -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;
|
||||
|
||||
--
|
||||
1.8.2.562.g931e949
|
||||
|
40
systemd-python-fix-initialization-of-_Reader-objects.patch
Normal file
40
systemd-python-fix-initialization-of-_Reader-objects.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From c2748ce28c7111037f312c5446335f5538e673e8 Mon Sep 17 00:00:00 2001
|
||||
From: Steven Hiscocks <steven@hiscocks.me.uk>
|
||||
Date: Thu, 15 Aug 2013 12:50:32 -0400
|
||||
Subject: [PATCH] systemd-python: fix initialization of _Reader objects
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=995575
|
||||
---
|
||||
src/python-systemd/_reader.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c
|
||||
index a678f69..3b1003b 100644
|
||||
--- a/src/python-systemd/_reader.c
|
||||
+++ b/src/python-systemd/_reader.c
|
||||
@@ -64,6 +64,10 @@ static PyStructSequence_Desc Monotonic_desc = {
|
||||
};
|
||||
#endif
|
||||
|
||||
+/**
|
||||
+ * Convert a Python sequence object into a strv (char**), and
|
||||
+ * None into a NULL pointer.
|
||||
+ */
|
||||
static int strv_converter(PyObject* obj, void *_result) {
|
||||
char ***result = _result;
|
||||
Py_ssize_t i, len;
|
||||
@@ -73,6 +77,11 @@ static int strv_converter(PyObject* obj, void *_result) {
|
||||
if (!obj)
|
||||
goto cleanup;
|
||||
|
||||
+ if (obj == Py_None) {
|
||||
+ *result = NULL;
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
if (!PySequence_Check(obj))
|
||||
return 0;
|
||||
|
||||
--
|
||||
1.8.2.562.g931e949
|
||||
|
@ -35,6 +35,8 @@ Source6: yum-protect-systemd.conf
|
||||
|
||||
# kernel-install patch for grubby, drop if grubby is obsolete
|
||||
Patch1000: kernel-install-grubby.patch
|
||||
Patch1001: systemd-python-fix-initialization-of-_Reader-objects.patch
|
||||
Patch1002: systemd-python-check-for-oom-give-nicer-error-messag.patch
|
||||
|
||||
%global num_patches %{lua: c=0; for i,p in ipairs(patches) do c=c+1; end; print(c);}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user