diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-10-29 21:38:31 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-10-30 02:08:57 +0100 |
commit | bd037038840501916aaf8b65a0c3a6e7357d3c74 (patch) | |
tree | 83c662c2c594fa58b8fb1f67ec1e7475b8ae0966 /src/libsystemd-bus/bus-objects.c | |
parent | 3fc047f43cd4e4a7cc6e7e49e12f1e2fd858b815 (diff) |
bus: don't fail if GetAll() is used to get properties of the built-in interfaces
Diffstat (limited to 'src/libsystemd-bus/bus-objects.c')
-rw-r--r-- | src/libsystemd-bus/bus-objects.c | 7 |
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; |