diff options
| author | Yu Miao <yumiao@kylinos.cn> | 2026-05-13 10:39:07 +0800 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-05-13 08:40:52 -1000 |
| commit | 7d8f3158a51cb40fc710d2a781549141a139b796 (patch) | |
| tree | a11cee7e4edaf151928ca083230ab50ca0b3ce1e | |
| parent | 5dd74441cbf42c22e874450eb6a6bbb19390a216 (diff) | |
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>
| -rw-r--r-- | tools/testing/selftests/cgroup/test_kmem.c | 10 |
1 files changed, 7 insertions, 3 deletions
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); } |
