[LTP] [PATCH] syscalls/waitid10: Fix on ARM, PPC and possibly others

Cyril Hrubis chrubis@suse.cz
Thu Mar 10 11:58:20 CET 2022


Hi!
> While integer division by zero does trap on x86_64 and causes the SIGFPE
> signal to be delivered it's not the case on all architecutes. At least
> on ARM and PPC64LE division by zero simply returns undefined result
> instead.
> 
> This patch adds raise(SIGFPE) at the end of the child as a fallback to
> make sure the process is killed with the right signal on all
> architectures.
> 
> Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
> ---
>  testcases/kernel/syscalls/waitid/waitid10.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/testcases/kernel/syscalls/waitid/waitid10.c b/testcases/kernel/syscalls/waitid/waitid10.c
> index 869ef18bd..8c351d120 100644
> --- a/testcases/kernel/syscalls/waitid/waitid10.c
> +++ b/testcases/kernel/syscalls/waitid/waitid10.c
> @@ -28,7 +28,10 @@ static void run(void)
>  		volatile int a, zero = 0;
>  
>  		a = 1 / zero;
> -		exit(a);
> +
> +		tst_res(TINFO, "Division by zero didn't trap, raising SIGFPE");

This patch inroduces 'set but not used' warning for the a variable so
maybe the message should look like:

		tst_res(TINFO, "1/0 = %i raising SIGFPE", a);

> +		raise(SIGFPE);
>  	}
>  
>  	TST_EXP_PASS(waitid(P_ALL, 0, infop, WEXITED));
> -- 
> 2.34.1
> 
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list