summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-10-29 21:38:31 +0100
committerLennart Poettering <lennart@poettering.net>2013-10-30 02:08:57 +0100
commitbd037038840501916aaf8b65a0c3a6e7357d3c74 (patch)
tree83c662c2c594fa58b8fb1f67ec1e7475b8ae0966
parent3fc047f43cd4e4a7cc6e7e49e12f1e2fd858b815 (diff)
bus: don't fail if GetAll() is used to get properties of the built-in interfaces
-rw-r--r--src/libsystemd-bus/bus-objects.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libsystemd-bus/bus-objects.c b/src/libsystemd-bus/bus-objects.c
index 31d761e215..aa0be37a9d 100644
--- a/src/libsystemd-bus/bus-objects.c
+++ b/src/libsystemd-bus/bus-objects.c
@@ -585,7 +585,7 @@ static int property_get_all_callbacks_run(
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
struct node_vtable *c;
- bool found_interface = false;
+ bool found_interface;
int r;
assert(bus);
@@ -600,6 +600,11 @@ static int property_get_all_callbacks_run(
if (r < 0)
return r;
+ found_interface =
+ streq(iface, "org.freedesktop.DBus.Properties") ||
+ streq(iface, "org.freedesktop.DBus.Peer") ||
+ streq(iface, "org.freedesktop.DBus.Introspectable");
+
LIST_FOREACH(vtables, c, first) {
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
void *u;