chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
logind: when looking for cgroup prefixes, allocate from stack
[elogind.git]
/
src
/
login
/
logind.c
diff --git
a/src/login/logind.c
b/src/login/logind.c
index 63422f4c323f947e829724623666d2a422667aed..aa3e5f0914d84f9769a2feb868628540f859832f 100644
(file)
--- a/
src/login/logind.c
+++ b/
src/login/logind.c
@@
-1041,16
+1041,13
@@
int manager_get_session_by_cgroup(Manager *m, const char *cgroup, Session **sess
return 1;
}
return 1;
}
- p = strdup(cgroup);
- if (!p)
- return log_oom();
+ p = strdupa(cgroup);
for (;;) {
char *e;
e = strrchr(p, '/');
if (!e || e == p) {
for (;;) {
char *e;
e = strrchr(p, '/');
if (!e || e == p) {
- free(p);
*session = NULL;
return 0;
}
*session = NULL;
return 0;
}
@@
-1059,7
+1056,6
@@
int manager_get_session_by_cgroup(Manager *m, const char *cgroup, Session **sess
s = hashmap_get(m->session_cgroups, p);
if (s) {
s = hashmap_get(m->session_cgroups, p);
if (s) {
- free(p);
*session = s;
return 1;
}
*session = s;
return 1;
}
@@
-1080,7
+1076,7
@@
int manager_get_user_by_cgroup(Manager *m, const char *cgroup, User **user) {
return 1;
}
return 1;
}
- p = strdup(cgroup);
+ p = strdup
a
(cgroup);
if (!p)
return log_oom();
if (!p)
return log_oom();
@@
-1089,7
+1085,6
@@
int manager_get_user_by_cgroup(Manager *m, const char *cgroup, User **user) {
e = strrchr(p, '/');
if (!e || e == p) {
e = strrchr(p, '/');
if (!e || e == p) {
- free(p);
*user = NULL;
return 0;
}
*user = NULL;
return 0;
}
@@
-1098,7
+1093,6
@@
int manager_get_user_by_cgroup(Manager *m, const char *cgroup, User **user) {
u = hashmap_get(m->user_cgroups, p);
if (u) {
u = hashmap_get(m->user_cgroups, p);
if (u) {
- free(p);
*user = u;
return 1;
}
*user = u;
return 1;
}