On Wed, May 13, 2026 at 10:58:38AM +0800, Hongfu Li wrote: >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. > >Signed-off-by: Hongfu Li <[email protected]>
Ah, looks you are right. Reviewed-by: Wei Yang <[email protected]> >--- > 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; > } >-- >2.25.1 -- Wei Yang Help you, Help me

