From 2f5026b8d4fe34601d692ae7f7cd27367e002266 Mon Sep 17 00:00:00 2001 From: Hongfu Li Date: Wed, 13 May 2026 10:58:38 +0800 Subject: [PATCH] selftests/perf_events: fix mmap() error check in sigtrap_threads In sigtrap_threads(), the return value of mmap() is checked against NULL. mmap() returns MAP_FAILED, which is (void *)-1, not NULL, when it fails. Since MAP_FAILED is non-zero and non-NULL, the condition "p == NULL" will never be true on failure, causing the program to proceed with an invalid pointer and segfault if mmap() actually fails under memory pressure. Link: https://lore.kernel.org/20260513025838.594945-1-lihongfu@kylinos.cn Signed-off-by: Hongfu Li Reviewed-by: Andrew Morton Cc: Mickael Salaun Cc: SeongJae Park Cc: Shuah Khan Cc: Wei Yang Cc: Kyle Huey Cc: Ingo Molnar Signed-off-by: Andrew Morton --- tools/testing/selftests/perf_events/watermark_signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/perf_events/watermark_signal.c b/tools/testing/selftests/perf_events/watermark_signal.c index 0f64b9b17081..a84709cabd8b 100644 --- a/tools/testing/selftests/perf_events/watermark_signal.c +++ b/tools/testing/selftests/perf_events/watermark_signal.c @@ -102,7 +102,7 @@ TEST(watermark_signal) } p = mmap(NULL, 2 * page_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); - if (p == NULL) { + if (p == MAP_FAILED) { perror("mmap"); goto cleanup; }