Zbigniew Jędrzejewski-Szmek 62fe94
From 125dd07483b6836106ff9ad3ce1737d8a6c56c59 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 62fe94
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek 62fe94
Date: Fri, 3 Oct 2014 19:47:47 -0400
Zbigniew Jędrzejewski-Szmek 62fe94
Subject: [PATCH] sd-bus: split out cleanup into separate function
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
m is always non-null at this point. This function is too long anyway.
Zbigniew Jędrzejewski-Szmek 62fe94
---
Zbigniew Jędrzejewski-Szmek 62fe94
 src/libsystemd/sd-bus/bus-kernel.c | 25 ++++++++++++++-----------
Zbigniew Jędrzejewski-Szmek 62fe94
 1 file changed, 14 insertions(+), 11 deletions(-)
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 0c39e22ed7..09ff25fe71 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/libsystemd/sd-bus/bus-kernel.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/libsystemd/sd-bus/bus-kernel.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -332,6 +332,18 @@ fail:
Zbigniew Jędrzejewski-Szmek 62fe94
         return r;
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
+static void unset_memfds(struct sd_bus_message *m) {
Zbigniew Jędrzejewski-Szmek 62fe94
+        struct bus_body_part *part;
Zbigniew Jędrzejewski-Szmek 62fe94
+        unsigned i;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(m);
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        /* Make sure the memfds are not freed twice */
Zbigniew Jędrzejewski-Szmek 62fe94
+        MESSAGE_FOREACH_PART(part, i, m)
Zbigniew Jędrzejewski-Szmek 62fe94
+                if (part->memfd >= 0)
Zbigniew Jędrzejewski-Szmek 62fe94
+                        part->memfd = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
+}
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
 static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
Zbigniew Jędrzejewski-Szmek 62fe94
         sd_bus_message *m = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
         struct kdbus_item *d;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -627,17 +639,8 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
Zbigniew Jędrzejewski-Szmek 62fe94
         return 1;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 fail:
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (m) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                struct bus_body_part *part;
Zbigniew Jędrzejewski-Szmek 62fe94
-                unsigned i;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                /* Make sure the memfds are not freed twice */
Zbigniew Jędrzejewski-Szmek 62fe94
-                MESSAGE_FOREACH_PART(part, i, m)
Zbigniew Jędrzejewski-Szmek 62fe94
-                        if (part->memfd >= 0)
Zbigniew Jędrzejewski-Szmek 62fe94
-                                part->memfd = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                sd_bus_message_unref(m);
Zbigniew Jędrzejewski-Szmek 62fe94
-        }
Zbigniew Jędrzejewski-Szmek 62fe94
+        unset_memfds(m);
Zbigniew Jędrzejewski-Szmek 62fe94
+        sd_bus_message_unref(m);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         return r;
Zbigniew Jędrzejewski-Szmek 62fe94
 }