[LTP] [PATCH] syscall: remove PROT_WRITE|PROT_EXEC from brk02

Li Wang liwang@redhat.com
Sat May 8 08:12:52 CEST 2021


We got permission denied while performing the brk02 on x86_64/s390x
(kernel-4.18). After looking at the manual page of mprotect(), seems
the access issue caused by PROT_EXEC.

 " POSIX says that the behavior of mprotect() is unspecified if it is
 applied to a region of memory that was not obtained via mmap(2). "

 # ./brk02
 tst_test.c:1291: TINFO: Timeout per run is 0h 05m 00s
 brk02.c:41: TFAIL: Cannot mprotect new VMA

>From Liam Howlett:
 Just removing the PROT_EXEC invalidates the test. However, if both
 PROT_EXEC and PROT_WRITE are removed, then the test still does what
 is intended.

So let's remove 'PROT_WRITE|PROT_EXEC' to make brk02 PASS with
all platforms.

Suggested-by: Liam Howlett <liam.howlett@oracle.com>
Signed-off-by: Li Wang <liwang@redhat.com>
Cc: Cyril Hrubis <chrubis@suse.cz>
---
 testcases/kernel/syscalls/brk/brk02.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/testcases/kernel/syscalls/brk/brk02.c b/testcases/kernel/syscalls/brk/brk02.c
index 4a272bac3..11e803cb4 100644
--- a/testcases/kernel/syscalls/brk/brk02.c
+++ b/testcases/kernel/syscalls/brk/brk02.c
@@ -36,8 +36,7 @@ void brk_down_vmas(void)
 		return;
 	}
 
-	if (mprotect(addr - page_size, page_size,
-		     PROT_READ|PROT_WRITE|PROT_EXEC)) {
+	if (mprotect(addr - page_size, page_size, PROT_READ)) {
 		tst_res(TFAIL | TERRNO, "Cannot mprotect new VMA");
 		return;
 	}
-- 
2.30.2



More information about the ltp mailing list