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 <lihongfu@kylinos.cn>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Mickael Salaun <mic@digikod.net>
Cc: SeongJae Park <sj@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Wei Yang <richard.weiyang@gmail.com>
Cc: Kyle Huey <khuey@kylehuey.com>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Hongfu Li 2026-05-13 10:58:38 +08:00 committed by Andrew Morton
parent 1c56b9cb48
commit 2f5026b8d4

View File

@ -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;
}