[igt-dev] [PATCH i-g-t] lib/tests/igt_fork.c: Fix error in mmap() flags

Jake Freeland jake at technologyfriends.net
Fri Oct 7 14:52:41 UTC 2022


In subtest_leak(), mmap() is called with the flag PROT_WRITE,
but no PROT_READ. Later in the function, the mapped memory is
read using `children[i]`. In FreeBSD, the lack of PROT_READ
causes SIGSEGV. Adding the PROT_READ flag to the mmap() call
fixes this.

Signed-off-by: Jake Freeland <jfree at freebsd.org>
---
 lib/tests/igt_fork.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/tests/igt_fork.c b/lib/tests/igt_fork.c
index d19d0945..d883aba4 100644
--- a/lib/tests/igt_fork.c
+++ b/lib/tests/igt_fork.c
@@ -109,7 +109,7 @@ __noreturn static void igt_fork_timeout_leak(void)
 __noreturn static void subtest_leak(void)
 {
 	pid_t *children =
-		mmap(0, 4096, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+		mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	const int num_children = 4096 / sizeof(*children);
 
 	igt_subtest_init(fake_argc, fake_argv);
-- 
2.37.0 (Apple Git-136)



More information about the igt-dev mailing list