chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udev: only tag the main card device of a sound card with 'seat'
[elogind.git]
/
src
/
logind-acl.c
diff --git
a/src/logind-acl.c
b/src/logind-acl.c
index 3df104ff2cc5a58e8c82b9550a080a54e009490f..7571093d0ef94c56874b38465e283a7f38f34867 100644
(file)
--- 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;
return -errno;
b = *u == uid;
- free(u);
+
acl_
free(u);
if (b) {
*entry = i;
if (b) {
*entry = i;
@@
-233,9
+233,11
@@
int devnode_acl_all(struct udev *udev,
if (r < 0)
goto finish;
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)
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);
}
node = udev_device_get_devnode(d);
- udev_device_unref(d);
-
if (!node) {
if (!node) {
+ udev_device_unref(d);
r = -ENOMEM;
goto finish;
}
r = devnode_acl(node, flush, del, old_uid, add, new_uid);
r = -ENOMEM;
goto finish;
}
r = devnode_acl(node, flush, del, old_uid, add, new_uid);
+ udev_device_unref(d);
+
if (r < 0)
goto finish;
}
if (r < 0)
goto finish;
}