Harald Hoyer fe20ad
From 7efa944f689234f12798d737f9597f93621193da Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek dc4617
From: Steven Hiscocks <steven@hiscocks.me.uk>
Zbigniew Jędrzejewski-Szmek dc4617
Date: Thu, 15 Aug 2013 12:50:32 -0400
Zbigniew Jędrzejewski-Szmek dc4617
Subject: [PATCH] systemd-python: fix initialization of _Reader objects
Zbigniew Jędrzejewski-Szmek dc4617
Zbigniew Jędrzejewski-Szmek dc4617
https://bugzilla.redhat.com/show_bug.cgi?id=995575
Zbigniew Jędrzejewski-Szmek dc4617
---
Zbigniew Jędrzejewski-Szmek dc4617
 src/python-systemd/_reader.c | 9 +++++++++
Zbigniew Jędrzejewski-Szmek dc4617
 1 file changed, 9 insertions(+)
Zbigniew Jędrzejewski-Szmek dc4617
Zbigniew Jędrzejewski-Szmek dc4617
diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c
Harald Hoyer fe20ad
index 6ac2f20..be8ada2 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
@@ -64,6 +64,10 @@ static PyStructSequence_Desc Monotonic_desc = {
Zbigniew Jędrzejewski-Szmek dc4617
 };
Zbigniew Jędrzejewski-Szmek dc4617
 #endif
Zbigniew Jędrzejewski-Szmek dc4617
 
Zbigniew Jędrzejewski-Szmek dc4617
+/**
Zbigniew Jędrzejewski-Szmek dc4617
+ * Convert a Python sequence object into a strv (char**), and
Zbigniew Jędrzejewski-Szmek dc4617
+ * None into a NULL pointer.
Zbigniew Jędrzejewski-Szmek dc4617
+ */
Zbigniew Jędrzejewski-Szmek dc4617
 static int strv_converter(PyObject* obj, void *_result) {
Zbigniew Jędrzejewski-Szmek dc4617
         char ***result = _result;
Zbigniew Jędrzejewski-Szmek dc4617
         Py_ssize_t i, len;
Zbigniew Jędrzejewski-Szmek dc4617
@@ -73,6 +77,11 @@ static int strv_converter(PyObject* obj, void *_result) {
Zbigniew Jędrzejewski-Szmek dc4617
         if (!obj)
Zbigniew Jędrzejewski-Szmek dc4617
             goto cleanup;
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
+            return 1;
Zbigniew Jędrzejewski-Szmek dc4617
+        }
Zbigniew Jędrzejewski-Szmek dc4617
+
Zbigniew Jędrzejewski-Szmek dc4617
         if (!PySequence_Check(obj))
Zbigniew Jędrzejewski-Szmek dc4617
             return 0;
Zbigniew Jędrzejewski-Szmek dc4617