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

You Zhou you.zhou@intel.com
Fri Oct 28 05:21:03 CEST 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:");
+#else
 	TST_EXP_VAL(SETFSUID(invalid_uid), current_uid,
 		    "setfsuid(invalid_fsuid) test for expected failure:");
+#endif
 }
 
 static struct tst_test test = {
-- 
2.25.1



More information about the ltp mailing list