test_cgcore_lesser_ns_open runs as root throughout and never changes its
euid, so chowning the two cgroup.procs files to a non-root uid has no
effect on the test.

The ENOENT the test expects comes from the cgroup namespace delegation
check in cgroup_procs_write_permission(): the source and destination
cgroups must both be descendants of the namespace root captured at open
time.  That check does not depend on file ownership.  In addition, the
permission check only examines the common ancestor's cgroup.procs file
(the test root here), which the chown calls do not touch.

Remove the redundant chown calls and the now unused test_euid variable.

Signed-off-by: Shaojie Sun <[email protected]>
---
 tools/testing/selftests/cgroup/test_core.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/tools/testing/selftests/cgroup/test_core.c 
b/tools/testing/selftests/cgroup/test_core.c
index 88ca832d4fc1..483e8b063f12 100644
--- a/tools/testing/selftests/cgroup/test_core.c
+++ b/tools/testing/selftests/cgroup/test_core.c
@@ -795,7 +795,6 @@ static int lesser_ns_open_thread_fn(void *arg)
 static int test_cgcore_lesser_ns_open(const char *root)
 {
        static char stack[65536];
-       const uid_t test_euid = 65534;  /* usually nobody, any !root is fine */
        int ret = KSFT_FAIL;
        char *cg_test_a = NULL, *cg_test_b = NULL;
        char *cg_test_a_procs = NULL, *cg_test_b_procs = NULL;
@@ -825,10 +824,6 @@ static int test_cgcore_lesser_ns_open(const char *root)
        if (cg_enter_current(cg_test_b))
                goto cleanup;
 
-       if (chown(cg_test_a_procs, test_euid, -1) ||
-           chown(cg_test_b_procs, test_euid, -1))
-               goto cleanup;
-
        targ.path = cg_test_b_procs;
        pid = clone(lesser_ns_open_thread_fn, stack + sizeof(stack),
                    CLONE_NEWCGROUP | CLONE_FILES | CLONE_VM | SIGCHLD,
-- 
2.25.1


Reply via email to