int r;
assert(s);
- assert(controller);
assert(path);
if (s->leader > 0) {
r = cg_create_and_attach(controller, path, s->leader);
if (r < 0)
- r = cg_create(controller, path);
+ r = cg_create(controller, path, NULL);
} else
- r = cg_create(controller, path);
+ r = cg_create(controller, path, NULL);
if (r < 0)
return r;
assert(s->user->cgroup_path);
if (!s->cgroup_path) {
- if (asprintf(&p, "%s/%s", s->user->cgroup_path, s->id) < 0)
+ _cleanup_free_ char *name = NULL, *escaped = NULL;
+
+ name = strappend(s->id, ".session");
+ if (!name)
+ return log_oom();
+
+ escaped = cg_escape(name);
+ if (!escaped)
+ return log_oom();
+
+ p = strjoin(s->user->cgroup_path, "/", escaped, NULL);
+ if (!p)
return log_oom();
} else
p = s->cgroup_path;