rc = syscall(SYS_setreuid, 0x4444, 0x5555);
assert_return_code(rc, errno);
+#ifdef SYS_getresuid
+ cp_ruid = cp_euid = cp_suid = -1;
+ rc = syscall(SYS_getresuid, &cp_ruid, &cp_euid, &cp_suid);
+ assert_return_code(rc, errno);
+ assert_int_equal(cp_ruid, 0x4444);
+ assert_int_equal(cp_euid, 0x5555);
+ assert_int_equal(cp_suid, 0x5555);
+#endif
+
u = getuid();
assert_int_equal(u, 0x4444);
rc = syscall(SYS_setreuid, -1, 0x6666);
assert_int_equal(rc, -1);
+ assert_int_equal(errno, EPERM);
+
+#ifdef SYS_getresuid
+ cp_ruid = cp_euid = cp_suid = -1;
+ rc = syscall(SYS_getresuid, &cp_ruid, &cp_euid, &cp_suid);
+ assert_return_code(rc, errno);
+ assert_int_equal(cp_ruid, 0x4444);
+ assert_int_equal(cp_euid, 0x5555);
+ assert_int_equal(cp_suid, 0x5555);
+#endif
}
int main(void) {