In low-memory scenarios, malloc() can fail. Without checking, the test will dereference NULL and crash, causing the test harness to report a failure that is unrelated to DAMON functionality. This is a false negative: the test should skip or report a resource error, not crash and mask the actual test result.
Add NULL checks after each malloc() call, printing an error message to stderr and returning -1 on failure. Signed-off-by: longlong yan <[email protected]> --- tools/testing/selftests/damon/access_memory.c | 11 ++++++++++- tools/testing/selftests/damon/access_memory_even.c | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/damon/access_memory.c b/tools/testing/selftests/damon/access_memory.c index 567793b11107..e1a8e050dcd4 100644 --- a/tools/testing/selftests/damon/access_memory.c +++ b/tools/testing/selftests/damon/access_memory.c @@ -38,8 +38,17 @@ int main(int argc, char *argv[]) mode = ACCESS_MODE_REPEAT; regions = malloc(sizeof(*regions) * nr_regions); - for (i = 0; i < nr_regions; i++) + if (!regions) { + fprintf(stderr, "Failed to allocate regions array\n"); + return -1; + } + for (i = 0; i < nr_regions; i++) { regions[i] = malloc(sz_region); + if (!regions[i]) { + fprintf(stderr, "Failed to allocate region %d\n", i); + return -1; + } + } do { for (i = 0; i < nr_regions; i++) { diff --git a/tools/testing/selftests/damon/access_memory_even.c b/tools/testing/selftests/damon/access_memory_even.c index 93f3a71bcfd4..a443835c119c 100644 --- a/tools/testing/selftests/damon/access_memory_even.c +++ b/tools/testing/selftests/damon/access_memory_even.c @@ -26,8 +26,17 @@ int main(int argc, char *argv[]) sz_region = atoi(argv[2]); regions = malloc(sizeof(*regions) * nr_regions); - for (i = 0; i < nr_regions; i++) + if (!regions) { + fprintf(stderr, "Failed to allocate regions array\n"); + return -1; + } + for (i = 0; i < nr_regions; i++) { regions[i] = malloc(sz_region); + if (!regions[i]) { + fprintf(stderr, "Failed to allocate region %d\n", i); + return -1; + } + } while (1) { for (i = 0; i < nr_regions; i++) { -- 2.43.0

