lkml.org 
[lkml]   [2022]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] cgroup: fix cgroup_get_from_id
    Date
    cgroup has to be one kernfs dir, otherwise kernel panic is caused,
    especially cgroup id is provide from userspace.

    Reported-by: Marco Patalano <mpatalan@redhat.com>
    Fixes: 6b658c4863c1 ("scsi: cgroup: Add cgroup_get_from_id()")
    Cc: Muneendra <muneendra.kumar@broadcom.com>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    ---
    kernel/cgroup/cgroup.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
    index e4bb5d57f4d1..5f2090d051ac 100644
    --- a/kernel/cgroup/cgroup.c
    +++ b/kernel/cgroup/cgroup.c
    @@ -6049,6 +6049,9 @@ struct cgroup *cgroup_get_from_id(u64 id)
    if (!kn)
    goto out;

    + if (kernfs_type(kn) != KERNFS_DIR)
    + goto put;
    +
    rcu_read_lock();

    cgrp = rcu_dereference(*(void __rcu __force **)&kn->priv);
    @@ -6056,7 +6059,7 @@ struct cgroup *cgroup_get_from_id(u64 id)
    cgrp = NULL;

    rcu_read_unlock();
    -
    +put:
    kernfs_put(kn);
    out:
    return cgrp;
    --
    2.31.1
    \
     
     \ /
      Last update: 2022-09-23 13:52    [W:3.809 / U:1.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site