diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/setresuid.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/setresuid.c | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/setresuid.c b/sysdeps/unix/sysv/linux/i386/setresuid.c index 4d735ca0f9..a91896a1a4 100644 --- a/sysdeps/unix/sysv/linux/i386/setresuid.c +++ b/sysdeps/unix/sysv/linux/i386/setresuid.c @@ -18,14 +18,8 @@ #include <errno.h> #include <unistd.h> -#include <sys/types.h> - -#include <linux/posix_types.h> - -#include <sysdep.h> -#include <sys/syscall.h> +#include <setxid.h> #include "kernel-features.h" -#include <pthread-functions.h> #if defined __NR_setresuid || defined __NR_setresuid32 @@ -44,14 +38,14 @@ __setresuid (uid_t ruid, uid_t euid, uid_t suid) int result; # if __ASSUME_32BITUIDS > 0 || !defined __NR_setresuid - result = INLINE_SYSCALL (setresuid32, 3, ruid, euid, suid); + result = INLINE_SETXID_SYSCALL (setresuid32, 3, ruid, euid, suid); # else # ifdef __NR_setresuid32 if (__libc_missing_32bit_uids <= 0) { int saved_errno = errno; - result = INLINE_SYSCALL (setresuid32, 3, ruid, euid, suid); + result = INLINE_SETXID_SYSCALL (setresuid32, 3, ruid, euid, suid); if (result == 0) goto out; if (errno != ENOSYS) @@ -70,24 +64,12 @@ __setresuid (uid_t ruid, uid_t euid, uid_t suid) return -1; } - result = INLINE_SYSCALL (setresuid, 3, ruid, euid, suid); + result = INLINE_SETXID_SYSCALL (setresuid, 3, ruid, euid, suid); # ifdef __NR_setresuid32 out: # endif # endif -#if defined HAVE_PTR__NPTL_SETXID && !defined SINGLE_THREAD - if (result == 0 && __libc_pthread_functions.ptr__nptl_setxid != NULL) - { - struct xid_command cmd; - cmd.syscall_no = __NR_setresuid32; - cmd.id[0] = ruid; - cmd.id[1] = euid; - cmd.id[2] = suid; - __libc_pthread_functions.ptr__nptl_setxid (&cmd); - } -#endif - return result; } libc_hidden_def (__setresuid) |