From 674cdd1933ef5301385d2119a4d1c5e9c862f0a2 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 12 Aug 2010 01:01:55 +0200
Subject: [PATCH] dbus: fix capability serialization

---
 src/dbus-execute.c | 6 ++++--
 src/dbus-execute.h | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/dbus-execute.c b/src/dbus-execute.c
index 55c61e593fb..1222d1bfd23 100644
--- a/src/dbus-execute.c
+++ b/src/dbus-execute.c
@@ -209,11 +209,13 @@ int bus_execute_append_capabilities(Manager *m, DBusMessageIter *i, const char *
         else
                 s = "";
 
-        if (!t)
+        if (!s)
                 return -ENOMEM;
 
         b = dbus_message_iter_append_basic(i, DBUS_TYPE_STRING, &s);
-        cap_free(t);
+
+        if (t)
+                cap_free(t);
 
         if (!b)
                 return -ENOMEM;
diff --git a/src/dbus-execute.h b/src/dbus-execute.h
index a00acbe2f06..cc4b803ca76 100644
--- a/src/dbus-execute.h
+++ b/src/dbus-execute.h
@@ -127,7 +127,7 @@
         { interface, "SyslogPriority",                bus_property_append_int,    "i",     &(context).syslog_priority              }, \
         { interface, "SyslogIdentifier",              bus_property_append_string, "s",     (context).syslog_identifier             }, \
         { interface, "SyslogLevelPrefix",             bus_property_append_bool,   "b",     &(context).syslog_level_prefix          }, \
-        { interface, "Capabilities",                  bus_execute_append_capabilities, "s", (context).capabilities                 }, \
+        { interface, "Capabilities",                  bus_execute_append_capabilities, "s",&(context)                              }, \
         { interface, "SecureBits",                    bus_property_append_int,    "i",     &(context).secure_bits                  }, \
         { interface, "CapabilityBoundingSetDrop",     bus_property_append_uint64, "t",     &(context).capability_bounding_set_drop }, \
         { interface, "User",                          bus_property_append_string, "s",     (context).user                          }, \