[LTP] [PATCH] kernel/syscall/setrlimit05.c: use a legal bad address for mips
Xiao Yang
yangx.jy@cn.fujitsu.com
Tue Nov 6 03:01:16 CET 2018
Hi Hongzhi,
Do you try to build CONFIG_SYSCTL_SYSCALL and run sysctl04 on mips32?
It seems that (void *) -1 is used in sysctl04.c as well. Perhaps, you
can fix
the issue together if sysctl04 gets the same error on mips32. :-)
Best Regards,
Xiao Yang
On 2018/11/05 15:30, Hongzhi.Song wrote:
> This testcase fails on mips32. The process is killed by SIGBUS which
> doesn't return EFAULT as expect.
>
> This is because:
> ((void *)-1) is not a legal bad address which causes the process
> killed by SIGBUG on mips.
>
> 'tst_get_bad_addr()' returns an address that should work on mips
> and other arches.
>
> Signed-off-by: Hongzhi.Song<hongzhi.song@windriver.com>
> ---
> testcases/kernel/syscalls/setrlimit/setrlimit05.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/testcases/kernel/syscalls/setrlimit/setrlimit05.c b/testcases/kernel/syscalls/setrlimit/setrlimit05.c
> index e716722..57b0b82 100644
> --- a/testcases/kernel/syscalls/setrlimit/setrlimit05.c
> +++ b/testcases/kernel/syscalls/setrlimit/setrlimit05.c
> @@ -31,9 +31,13 @@ static void verify_setrlimit(void)
> int status;
> pid_t pid;
>
> + void *bad_addr;
> +
> + bad_addr = tst_get_bad_addr(NULL);
> +
> pid = SAFE_FORK();
> if (!pid) {
> - TEST(setrlimit(RLIMIT_NOFILE, (void *) -1));
> + TEST(setrlimit(RLIMIT_NOFILE,(struct rlimit *)bad_addr));
> if (TST_RET != -1) {
> tst_res(TFAIL, "setrlimit() succeeded unexpectedly");
> exit(0);
More information about the ltp
mailing list