Commit 7d8f3158a51c for kernel

commit 7d8f3158a51cb40fc710d2a781549141a139b796
Author: Yu Miao <yumiao@kylinos.cn>
Date:   Wed May 13 10:39:07 2026 +0800

    selftests/cgroup: Fix error path leaks in test_percpu_basic

    When cg_name_indexed() returns NULL partway through the child creation
    loop, the code returned -1 without running cleanup_children and cleanup.
    That left the `parent` pathname allocation unreleased and did not remove
    child cgroup directories already created under the parent. Fix by jumping
    to cleanup_children instead of returning.

    When cg_create() fails, `child` (the pathname from cg_name_indexed())
    was not freed before cleanup_children. Fix by freeing `child` before
    branching to cleanup_children.

    Fixes: 90631e1dea55 ("kselftests: cgroup: add perpcu memory accounting test")
    Signed-off-by: Yu Miao <yumiao@kylinos.cn>
    Signed-off-by: Tejun Heo <tj@kernel.org>

diff --git a/tools/testing/selftests/cgroup/test_kmem.c b/tools/testing/selftests/cgroup/test_kmem.c
index eeabd34bf083..12f59925500b 100644
--- a/tools/testing/selftests/cgroup/test_kmem.c
+++ b/tools/testing/selftests/cgroup/test_kmem.c
@@ -368,11 +368,15 @@ static int test_percpu_basic(const char *root)

 	for (i = 0; i < 1000; i++) {
 		child = cg_name_indexed(parent, "child", i);
-		if (!child)
-			return -1;
+		if (!child) {
+			ret = -1;
+			goto cleanup_children;
+		}

-		if (cg_create(child))
+		if (cg_create(child)) {
+			free(child);
 			goto cleanup_children;
+		}

 		free(child);
 	}