From: Martin Wilck Date: Thu, 25 Feb 2021 16:09:03 +0000 (+0100) Subject: sd-device: don't use BPF filtering for kernel monitors X-Git-Tag: v248-rc3~85 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8ce385fe3e5be91b6f414415e10f8897e41d942;p=thirdparty%2Fsystemd.git sd-device: don't use BPF filtering for kernel monitors BPF filtering accesses fields in the netlink header that are only filled in by libudev, never by the kernel. Therefore adding BPF filters for kernel monitors is pointless. Even false filtering of kernel events might be possible; at least it's hard to prove that it can't occur. --- diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c index 48f3c707e30..203106ab449 100644 --- a/src/libsystemd/sd-device/device-monitor.c +++ b/src/libsystemd/sd-device/device-monitor.c @@ -627,8 +627,9 @@ _public_ int sd_device_monitor_filter_update(sd_device_monitor *m) { if (m->filter_uptodate) return 0; - if (hashmap_isempty(m->subsystem_filter) && - set_isempty(m->tag_filter)) { + if (m->snl.nl.nl_groups == MONITOR_GROUP_KERNEL || + (hashmap_isempty(m->subsystem_filter) && + set_isempty(m->tag_filter))) { m->filter_uptodate = true; return 0; }