Add NULL checks after each malloc() call, printing an error message
to stderr and returning -1 on failure.

Fixes: b5906f5f7359 ("selftests/damon: add a test for 
update_schemes_tried_regions sysfs command")
Fixes: c94df805c774 ("selftests/damon: implement a program for even-numbered 
memory regions access")
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


Reply via email to