projects
/
platform
/
kernel
/
linux-starfive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
cgroup: cgroup_get_from_id() must check the looked-up kn is a directory
[platform/kernel/linux-starfive.git]
/
kernel
/
cgroup
/
cgroup.c
diff --git
a/kernel/cgroup/cgroup.c
b/kernel/cgroup/cgroup.c
index
e4bb5d5
..
5f2090d
100644
(file)
--- 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;