[LTP] [PATCH] setfsuid02: Fix a fake failure for setfsuid02

Petr Vorel pvorel@suse.cz
Mon Oct 31 11:59:29 CET 2022


> When run setfsuid02 case on x86_64 platform, I got a failure even if
> the filesystem user ID is set successfully.
> "
> ./setfsuid02
> tst_test.c:1526: TINFO: Timeout per run is 0h 00m 30s
> setfsuid02.c:31: TFAIL: setfsuid(invalid_fsuid) test for expected
> 			failure: retval 11 != 0: SUCCESS (0)

> Summary:
> passed   0
> failed   1
> broken   0
> skipped  0
> warnings 0
> "

> On both success and failure, setfsuid syscall returns the previous
> filesystem user ID of the caller. In this case, if case sets
> filesystem user ID successfully for the first time, this syscall
> can return the ID previously set for the second time.

> Reported-by: Pengfei Xu <pengfei.xu@intel.com>
> Signed-off-by: You Zhou <you.zhou@intel.com>
> ---
>  testcases/kernel/syscalls/setfsuid/setfsuid02.c | 5 +++++
>  1 file changed, 5 insertions(+)

> diff --git a/testcases/kernel/syscalls/setfsuid/setfsuid02.c b/testcases/kernel/syscalls/setfsuid/setfsuid02.c
> index 850f17834..441d1e27a 100644
> --- a/testcases/kernel/syscalls/setfsuid/setfsuid02.c
> +++ b/testcases/kernel/syscalls/setfsuid/setfsuid02.c
> @@ -28,8 +28,13 @@ static void run(void)
>  	UID16_CHECK(invalid_uid, setfsuid);

>  	TST_EXP_VAL_SILENT(SETFSUID(invalid_uid), current_uid);
> +#if __x86_64__
> +	TST_EXP_VAL(SETFSUID(invalid_uid), invalid_uid,
> +		    "setfsuid(invalid_fsuid) test for expected failure:");
Hi You,

this is most certainly invalid way of fixing things.

Would you mind to test if the patch from Avinesh works for you?
https://lore.kernel.org/ltp/20221027140954.4094-1-akumar@suse.de/

Kind regards,
Petr

> +#else
>  	TST_EXP_VAL(SETFSUID(invalid_uid), current_uid,
>  		    "setfsuid(invalid_fsuid) test for expected failure:");
> +#endif
>  }

>  static struct tst_test test = {


More information about the ltp mailing list