X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-bus%2Fbus-control.c;h=261cf0d0447e73d51d3ce4f92c67daee62f0af60;hp=6a9e9b296ad2df56277b415b9845381e8e946688;hb=96ceff428359b8f757d9d4da1f5da13bb9b5ab2e;hpb=e7100587da6d147fa601c911122d13ad4257e963 diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c index 6a9e9b296..261cf0d04 100644 --- a/src/libsystemd/sd-bus/bus-control.c +++ b/src/libsystemd/sd-bus/bus-control.c @@ -1180,6 +1180,10 @@ int bus_add_match_internal_kernel( assert(bus); + /* Monitor streams don't support matches, make this a NOP */ + if (bus->hello_flags & KDBUS_HELLO_MONITOR) + return 0; + bloom = alloca0(bus->bloom_size); sz = ALIGN8(offsetof(struct kdbus_cmd_match, items)); @@ -1392,6 +1396,10 @@ int bus_remove_match_internal_kernel( assert(bus); + /* Monitor streams don't support matches, make this a NOP */ + if (bus->hello_flags & KDBUS_HELLO_MONITOR) + return 0; + zero(m); m.size = offsetof(struct kdbus_cmd_match, items); m.cookie = cookie;