In vfs_get_tree we explicitly check that fc->root is NULL before calling
->get_tree helper. So when mounting cgroup2 filesystem in the begining
of cgroup_get_tree the fc->root is uninitializled. We were lucky that
ve_hide_cgroups never dereferenced it on this code path, as mounting
cgroup2 from container was prohibited and from host ve_hide_cgroups does
not dereference root.

But if we will allow mounting cgroup2 filesystem in container, this use
of ctx->root in cgroup_get_tree will leed to crash, let's fix it.

https://jira.vzint.dev/browse/PSBM-149975
Fixes: e8e4834b833c ("ve/cgroup: hide non-virtualized cgroups in container")
Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com>
---
 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 3f685035076a..b0cf5cf66d20 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -2543,7 +2543,7 @@ static int cgroup_get_tree(struct fs_context *fc)
        struct cgroup_fs_context *ctx = cgroup_fc2context(fc);
        int ret;
 
-       if (ve_hide_cgroups(ctx->root))
+       if (ve_hide_cgroups(&cgrp_dfl_root))
                return -EPERM;
 
        cgrp_dfl_visible = true;
-- 
2.41.0

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to