X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogind-acl.c;h=7571093d0ef94c56874b38465e283a7f38f34867;hb=bbd4388153bde7b7fdb39ce5c88dd92f7b8a4d2d;hp=3df104ff2cc5a58e8c82b9550a080a54e009490f;hpb=5eda94dda25bccda928c4b33c790dbe748573a22;p=elogind.git diff --git a/src/logind-acl.c b/src/logind-acl.c index 3df104ff2..7571093d0 100644 --- a/src/logind-acl.c +++ b/src/logind-acl.c @@ -54,7 +54,7 @@ static int find_acl(acl_t acl, uid_t uid, acl_entry_t *entry) { return -errno; b = *u == uid; - free(u); + acl_free(u); if (b) { *entry = i; @@ -233,9 +233,11 @@ int devnode_acl_all(struct udev *udev, if (r < 0) goto finish; - r = udev_enumerate_add_match_tag(e, seat); - if (r < 0) - goto finish; + if (!streq(seat, "seat0")) { + r = udev_enumerate_add_match_tag(e, seat); + if (r < 0) + goto finish; + } r = udev_enumerate_scan_devices(e); if (r < 0) @@ -262,14 +264,15 @@ int devnode_acl_all(struct udev *udev, } node = udev_device_get_devnode(d); - udev_device_unref(d); - if (!node) { + udev_device_unref(d); r = -ENOMEM; goto finish; } r = devnode_acl(node, flush, del, old_uid, add, new_uid); + udev_device_unref(d); + if (r < 0) goto finish; }