1*49cdfc7eSAndroid Build Coastguard Worker // SPDX-License-Identifier: GPL-2.0-or-later 2*49cdfc7eSAndroid Build Coastguard Worker /* 3*49cdfc7eSAndroid Build Coastguard Worker * Copyright (c) International Business Machines Corp., 2001 4*49cdfc7eSAndroid Build Coastguard Worker * Copyright (c) Linux Test Project, 2009-2022 5*49cdfc7eSAndroid Build Coastguard Worker */ 6*49cdfc7eSAndroid Build Coastguard Worker 7*49cdfc7eSAndroid Build Coastguard Worker /*\ 8*49cdfc7eSAndroid Build Coastguard Worker * [Description] 9*49cdfc7eSAndroid Build Coastguard Worker * 10*49cdfc7eSAndroid Build Coastguard Worker * Verify that setuid(2) returns 0 and effective uid has 11*49cdfc7eSAndroid Build Coastguard Worker * been set successfully as a normal or super user. 12*49cdfc7eSAndroid Build Coastguard Worker */ 13*49cdfc7eSAndroid Build Coastguard Worker 14*49cdfc7eSAndroid Build Coastguard Worker #include <errno.h> 15*49cdfc7eSAndroid Build Coastguard Worker #include <unistd.h> 16*49cdfc7eSAndroid Build Coastguard Worker #include <sys/types.h> 17*49cdfc7eSAndroid Build Coastguard Worker #include "tst_test.h" 18*49cdfc7eSAndroid Build Coastguard Worker #include "compat_tst_16.h" 19*49cdfc7eSAndroid Build Coastguard Worker verify_setuid(void)20*49cdfc7eSAndroid Build Coastguard Workerstatic void verify_setuid(void) 21*49cdfc7eSAndroid Build Coastguard Worker { 22*49cdfc7eSAndroid Build Coastguard Worker uid_t uid; 23*49cdfc7eSAndroid Build Coastguard Worker 24*49cdfc7eSAndroid Build Coastguard Worker uid = getuid(); 25*49cdfc7eSAndroid Build Coastguard Worker UID16_CHECK(uid, setuid); 26*49cdfc7eSAndroid Build Coastguard Worker 27*49cdfc7eSAndroid Build Coastguard Worker TST_EXP_PASS(SETUID(uid), "setuid(%d)", uid); 28*49cdfc7eSAndroid Build Coastguard Worker } 29*49cdfc7eSAndroid Build Coastguard Worker 30*49cdfc7eSAndroid Build Coastguard Worker static struct tst_test test = { 31*49cdfc7eSAndroid Build Coastguard Worker .test_all = verify_setuid, 32*49cdfc7eSAndroid Build Coastguard Worker }; 33