From: Martin Pitt Date: Wed, 3 Mar 2010 23:48:59 +0000 (+0100) Subject: udev-acl: Correctly handle ENV{ACL_MANAGE}==0 X-Git-Tag: 174~601 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=5c3ebbf35a2c101e0212c7066f0d65e457fcf40c udev-acl: Correctly handle ENV{ACL_MANAGE}==0 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. --- diff --git a/extras/udev-acl/70-acl.rules b/extras/udev-acl/70-acl.rules index 8380f53eb..874667c5b 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 e670ce707..c070fccd1 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;