lkml.org 
[lkml]   [2019]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 231/258] cgroup: fix parsing empty mount option string
    Date
    From: Ondrej Mosnacek <omosnace@redhat.com>

    [ Upstream commit e250d91d65750a0c0c62483ac4f9f357e7317617 ]

    This fixes the case where all mount options specified are consumed by an
    LSM and all that's left is an empty string. In this case cgroupfs should
    accept the string and not fail.

    How to reproduce (with SELinux enabled):

    # umount /sys/fs/cgroup/unified
    # mount -o context=system_u:object_r:cgroup_t:s0 -t cgroup2 cgroup2 /sys/fs/cgroup/unified
    mount: /sys/fs/cgroup/unified: wrong fs type, bad option, bad superblock on cgroup2, missing codepage or helper program, or other error.
    # dmesg | tail -n 1
    [ 31.575952] cgroup: cgroup2: unknown option ""

    Fixes: 67e9c74b8a87 ("cgroup: replace __DEVEL__sane_behavior with cgroup2 fs type")
    [NOTE: should apply on top of commit 5136f6365ce3 ("cgroup: implement "nsdelegate" mount option"), older versions need manual rebase]
    Suggested-by: Stephen Smalley <sds@tycho.nsa.gov>
    Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    kernel/cgroup/cgroup.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
    index 1aa517908561..e578c3999970 100644
    --- a/kernel/cgroup/cgroup.c
    +++ b/kernel/cgroup/cgroup.c
    @@ -1743,7 +1743,7 @@ static int parse_cgroup_root_flags(char *data, unsigned int *root_flags)

    *root_flags = 0;

    - if (!data)
    + if (!data || *data == '\0')
    return 0;

    while ((token = strsep(&data, ",")) != NULL) {
    --
    2.19.1
    \
     
     \ /
      Last update: 2019-01-28 18:10    [W:4.218 / U:0.140 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site