X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-session.c;h=662273b07f6a22d69dbdd1fdb5dd4dbeb7fae4a3;hb=a20affe2f0fb4c8d488155a0b860549e9389f32a;hp=2f7ab3451fb806c0166f2ea46d97d569b38eab50;hpb=7027ff61a34a12487712b382a061c654acc3a679;p=elogind.git diff --git a/src/login/logind-session.c b/src/login/logind-session.c index 2f7ab3451..662273b07 100644 --- a/src/login/logind-session.c +++ b/src/login/logind-session.c @@ -465,7 +465,18 @@ static int session_create_cgroup(Session *s) { 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;