return 1;
}
- p = strdup(cgroup);
- if (!p)
- return log_oom();
+ p = strdupa(cgroup);
for (;;) {
char *e;
e = strrchr(p, '/');
if (!e || e == p) {
- free(p);
*session = NULL;
return 0;
}
s = hashmap_get(m->session_cgroups, p);
if (s) {
- free(p);
*session = s;
return 1;
}
return 1;
}
- p = strdup(cgroup);
+ p = strdupa(cgroup);
if (!p)
return log_oom();
e = strrchr(p, '/');
if (!e || e == p) {
- free(p);
*user = NULL;
return 0;
}
u = hashmap_get(m->user_cgroups, p);
if (u) {
- free(p);
*user = u;
return 1;
}
}
int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session) {
- char *p;
+ _cleanup_free_ char *p = NULL;
int r;
assert(m);
assert(pid >= 1);
assert(session);
- r = cg_get_by_pid(SYSTEMD_CGROUP_CONTROLLER, pid, &p);
+ r = cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, pid, &p);
if (r < 0)
return r;
- r = manager_get_session_by_cgroup(m, p, session);
- free(p);
-
- return r;
+ return manager_get_session_by_cgroup(m, p, session);
}
void manager_cgroup_notify_empty(Manager *m, const char *cgroup) {
return -errno;
}
- r = config_parse(fn, f, "Login\0", config_item_perf_lookup, (void*) logind_gperf_lookup, false, m);
+ r = config_parse(NULL, fn, f, "Login\0", config_item_perf_lookup, (void*) logind_gperf_lookup, false, m);
if (r < 0)
log_warning("Failed to parse configuration file: %s", strerror(-r));