mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-15 20:12:00 -04:00
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: 90631e1dea ("kselftests: cgroup: add perpcu memory accounting test")
Signed-off-by: Yu Miao <yumiao@kylinos.cn>
Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
@@ -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 (cg_create(child))
|
||||
if (!child) {
|
||||
ret = -1;
|
||||
goto cleanup_children;
|
||||
}
|
||||
|
||||
if (cg_create(child)) {
|
||||
free(child);
|
||||
goto cleanup_children;
|
||||
}
|
||||
|
||||
free(child);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user