Commit 7d8f3158 authored by Yu Miao's avatar Yu Miao Committed by Tejun Heo
Browse files

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: 90631e1d ("kselftests: cgroup: add perpcu memory accounting test")
Signed-off-by: default avatarYu Miao <yumiao@kylinos.cn>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 5dd74441
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -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);
	}