chiark / gitweb /
bus-proxy: never pass on unmatched broadcasts
authorDavid Herrmann <dh.herrmann@gmail.com>
Thu, 16 Jul 2015 13:14:43 +0000 (15:14 +0200)
committerSven Eden <yamakuzure@gmx.net>
Tue, 14 Mar 2017 09:06:54 +0000 (10:06 +0100)
commit0a763769282e494dc3c4ef192f3e763931179817
tree7593289c8e0bb88c639e81bdacb2c3a0f8a4908c
parentacfcd596701fed76897fb64396ac6a123576c6e1
bus-proxy: never pass on unmatched broadcasts

The lovely libvirtd goes into crazy mode if it receives broadcasts that
it didn't subscribe to. With bus-proxyd, this might happen in 2 cases:

    1) The kernel passes us an unmatched signal due to a false-positive
       bloom-match.

    2) We generate NameOwnerChanged/NameAcquired/NameLost locally even
       though the peer didn't subscribe to it.

dbus-daemon is reliable in what signals it passes on. So make sure we
follow that style. Never ever send a signal to a local peer if it doesn't
match an installed filter of that peer.
src/libelogind/sd-bus/bus-introspect.h
src/libelogind/sd-bus/bus-slot.h
src/shared/blkid-util.h