From a9174861eab9e786f6873fbe6374a1ac19a5e46a Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Wed, 3 Jan 2024 16:39:53 +0000 Subject: [PATCH] posixshm largepage_mmap: fix a racy test You can't ever safely map a single page and then map a superpage sized mapping over it with MAP_FIXED. Even in a single-threaded program, ASLR might mean you land too close to another mapping and on CheriBSD we don't allow the initial reservation to grow because doing so requires program changes that are hard to automate. To avoid this, map the entire region we want to use upfront. Reviewed by: markj Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D43282 --- tests/sys/posixshm/posixshm_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sys/posixshm/posixshm_test.c b/tests/sys/posixshm/posixshm_test.c index efc903d4ee04..ade07a118707 100644 --- a/tests/sys/posixshm/posixshm_test.c +++ b/tests/sys/posixshm/posixshm_test.c @@ -1407,7 +1407,7 @@ ATF_TC_BODY(largepage_mmap, tc) ATF_REQUIRE(munmap(addr, ps[i] == 0)); /* Clobber an anonymous mapping with a superpage. */ - addr1 = mmap(NULL, ps[0], PROT_READ | PROT_WRITE, + addr1 = mmap(NULL, ps[i], PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_ALIGNED(ffsl(ps[i]) - 1), -1, 0); ATF_REQUIRE_MSG(addr1 != MAP_FAILED,