mirror of
https://github.com/systemd/systemd.git
synced 2026-08-05 23:50:42 +00:00
sd-bus: destination-matches cannot match NameOwnerChanged
Make sure we don't install NameOwnerChanged matches if the caller passed a destination='' match (except if it is the broadcast address). Per spec, all NameOwnerChanged signals are broadcasts. Only the NameLost/NameAcquired signals are unicasts, but those are never received through sd-bus. Instead, the bus-proxy synthesizes them and it already installs proper matches for them.
This commit is contained in:
@@ -1345,6 +1345,10 @@ int bus_add_match_internal_kernel(
|
||||
else if (r > 0)
|
||||
sz += ALIGN8(offsetof(struct kdbus_item, id) + sizeof(uint64_t));
|
||||
|
||||
/* if not a broadcast, it cannot be a name-change */
|
||||
if (r <= 0 || dst_id != KDBUS_DST_ID_BROADCAST)
|
||||
matches_name_change = false;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user