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.
This commit is contained in:
Martin Pitt 2010-03-04 00:48:59 +01:00
parent 3c4b1738a9
commit 5c3ebbf35a
2 changed files with 2 additions and 2 deletions

View File

@ -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"

View File

@ -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;