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

Liam Howlett liam.howlett@oracle.com
Mon May 10 03:15:49 CEST 2021


Reviewed-by: Liam R. Howlett <Liam.Howlett@Oracle.com>

* Li Wang <liwang@redhat.com> [210508 02:13]:
> 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