Skip to content

Commit b167198

Browse files
sjp38gregkh
authored andcommitted
mm/damon/tests/vaddr-kunit: handle alloc failures on damon_do_test_apply_three_regions()
commit 2b22d0f upstream. damon_do_test_apply_three_regions() is assuming all dynamic memory allocation in it will succeed. Those are indeed likely in the real use cases since those allocations are too small to fail, but theoretically those could fail. In the case, inappropriate memory access can happen. Fix it by appropriately cleanup pre-allocated memory and skip the execution of the remaining tests in the failure cases. Link: https://lkml.kernel.org/r/20251101182021.74868-18-sj@kernel.org Fixes: 17ccae8 ("mm/damon: add kunit tests") Signed-off-by: SeongJae Park <sj@kernel.org> Cc: Brendan Higgins <brendan.higgins@linux.dev> Cc: David Gow <davidgow@google.com> Cc: Kefeng Wang <wangkefeng.wang@huawei.com> Cc: <stable@vger.kernel.org> [5.15+] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: SeongJae Park <sj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 7ca5ed8 commit b167198

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

mm/damon/tests/vaddr-kunit.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,14 @@ static void damon_do_test_apply_three_regions(struct kunit *test,
136136
int i;
137137

138138
t = damon_new_target();
139+
if (!t)
140+
kunit_skip(test, "target alloc fail");
139141
for (i = 0; i < nr_regions / 2; i++) {
140142
r = damon_new_region(regions[i * 2], regions[i * 2 + 1]);
143+
if (!r) {
144+
damon_destroy_target(t);
145+
kunit_skip(test, "region alloc fail");
146+
}
141147
damon_add_region(r, t);
142148
}
143149

0 commit comments

Comments
 (0)