From 5c3ebbf35a2c101e0212c7066f0d65e457fcf40c Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Thu, 4 Mar 2010 00:48:59 +0100 Subject: [PATCH] udev-acl: Correctly handle ENV{ACL_MANAGE}==0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When a custom rule sets ACL_MANAGE to 0 to disable ACL management for a particular device, handle this as "disabled", by explicitly checking against "1" instead of "nonempty". Thanks to Rafał Rzepecki for pointing this out. --- extras/udev-acl/70-acl.rules | 2 +- extras/udev-acl/udev-acl.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/udev-acl/70-acl.rules b/extras/udev-acl/70-acl.rules index 8380f53e..874667c5 100644 --- a/extras/udev-acl/70-acl.rules +++ b/extras/udev-acl/70-acl.rules @@ -69,7 +69,7 @@ SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c02", ENV{ACL_MANAG ENV{COLOR_MEASUREMENT_DEVICE}=="*?", ENV{ACL_MANAGE}="1" # apply ACL for all locally logged in users -LABEL="acl_apply", ENV{ACL_MANAGE}=="?*", TEST=="/var/run/ConsoleKit/database", \ +LABEL="acl_apply", ENV{ACL_MANAGE}=="1", TEST=="/var/run/ConsoleKit/database", \ RUN+="udev-acl --action=$env{ACTION} --device=$env{DEVNAME}" LABEL="acl_end" diff --git a/extras/udev-acl/udev-acl.c b/extras/udev-acl/udev-acl.c index e670ce70..c070fccd 100644 --- a/extras/udev-acl/udev-acl.c +++ b/extras/udev-acl/udev-acl.c @@ -289,7 +289,7 @@ static void apply_acl_to_devices(uid_t uid, int add) /* iterate over all devices tagged with ACL_SET */ udev = udev_new(); enumerate = udev_enumerate_new(udev); - udev_enumerate_add_match_property(enumerate, "ACL_MANAGE", "*"); + udev_enumerate_add_match_property(enumerate, "ACL_MANAGE", "1"); udev_enumerate_scan_devices(enumerate); udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(enumerate)) { struct udev_device *device; -- 2.39.5