summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-10-21 15:05:58 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-10-21 15:05:58 +0200
commit8cc64c2a3640121745fdfaccc6eae896ac25a911 (patch)
tree9bf9f0d1ce234aafcd7bee43b13507ce116213fe
parent4b9e5848e31cb2efb606a5292a2d2abb6ba35040 (diff)
downloadsystemd-8cc64c2a3640121745fdfaccc6eae896ac25a911.tar.gz
logind: fix emission of PropertiesChanged on seats
The story is the same as in 471cffcfb0e005b7c4044b3b52cc4f25d217efac: device_attach() → seat_send_changed() → sd_bus_emit_properties_changed_strv() → emit_properties_changed_on_interface() → node_vtable_get_userdata() → seat_object_find(), which returns 0 because message == NULL. But when we are emitting a signal, message is always NULL. Removing the overeager check and assert in the called function allow the signal to be emitted. Fixes #13769.
-rw-r--r--src/login/logind-dbus.c1
-rw-r--r--src/login/logind-seat-dbus.c2
2 files changed, 0 insertions, 3 deletions
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index 20a8591bd8..91c3bd362e 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -189,7 +189,6 @@ int manager_get_seat_from_creds(
int r;
assert(m);
- assert(message);
assert(ret);
if (SEAT_IS_SELF(name) || SEAT_IS_AUTO(name)) {
diff --git a/src/login/logind-seat-dbus.c b/src/login/logind-seat-dbus.c
index 3c58929611..9958490875 100644
--- a/src/login/logind-seat-dbus.c
+++ b/src/login/logind-seat-dbus.c
@@ -280,8 +280,6 @@ int seat_object_find(sd_bus *bus, const char *path, const char *interface, void
return -ENOMEM;
message = sd_bus_get_current_message(bus);
- if (!message)
- return 0;
r = manager_get_seat_from_creds(m, message, e, error, &seat);
if (r == -ENXIO) {