]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
cgroup: reject cgroup names with '\n'
authorAlban Crequy <alban.crequy@collabora.co.uk>
Mon, 18 Aug 2014 11:20:20 +0000 (12:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Oct 2014 20:41:03 +0000 (13:41 -0700)
commit 71b1fb5c4473a5b1e601d41b109bdfe001ec82e0 upstream.

/proc/<pid>/cgroup contains one cgroup path on each line. If cgroup names are
allowed to contain "\n", applications cannot parse /proc/<pid>/cgroup safely.

Signed-off-by: Alban Crequy <alban.crequy@collabora.co.uk>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/cgroup.c

index 3bb40d98a892ea0ef9cb9dc4564d3e462865674f..c89e9a9049f4478e02644bd33a796612b83093da 100644 (file)
@@ -4393,6 +4393,11 @@ static int cgroup_mkdir(struct kernfs_node *parent_kn, const char *name,
        struct kernfs_node *kn;
        int ssid, ret;
 
+       /* Do not accept '\n' to prevent making /proc/<pid>/cgroup unparsable.
+        */
+       if (strchr(name, '\n'))
+               return -EINVAL;
+
        parent = cgroup_kn_lock_live(parent_kn);
        if (!parent)
                return -ENODEV;