|
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 |
}
|