chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
shutdownd: use PassCred=yes in the socket unit
[elogind.git]
/
src
/
logind.c
diff --git
a/src/logind.c
b/src/logind.c
index 1aad48d2dc0b4abca22053858388307796c41f1c..4633a5ef29109c9cf51538dfdc99deb5de96a4fb 100644
(file)
--- a/
src/logind.c
+++ b/
src/logind.c
@@
-413,6
+413,7
@@
static int manager_enumerate_users_from_cgroup(Manager *m) {
int r = 0;
char *name;
DIR *d;
int r = 0;
char *name;
DIR *d;
+ int k;
r = cg_enumerate_subgroups(SYSTEMD_CGROUP_CONTROLLER, m->cgroup_path, &d);
if (r < 0) {
r = cg_enumerate_subgroups(SYSTEMD_CGROUP_CONTROLLER, m->cgroup_path, &d);
if (r < 0) {
@@
-423,9
+424,8
@@
static int manager_enumerate_users_from_cgroup(Manager *m) {
return r;
}
return r;
}
- while ((
r
= cg_read_subgroup(d, &name)) > 0) {
+ while ((
k
= cg_read_subgroup(d, &name)) > 0) {
User *user;
User *user;
- int k;
k = manager_add_user_by_name(m, name, &user);
if (k < 0) {
k = manager_add_user_by_name(m, name, &user);
if (k < 0) {
@@
-446,6
+446,9
@@
static int manager_enumerate_users_from_cgroup(Manager *m) {
free(name);
}
free(name);
}
+ if (r >= 0 && k < 0)
+ r = k;
+
closedir(d);
return r;
closedir(d);
return r;