diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/setresgid.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/setresgid.c | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/setresgid.c b/sysdeps/unix/sysv/linux/i386/setresgid.c index 614e2c256d..c8b17ee7fc 100644 --- a/sysdeps/unix/sysv/linux/i386/setresgid.c +++ b/sysdeps/unix/sysv/linux/i386/setresgid.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_setresgid || defined __NR_setresgid32 @@ -44,14 +38,14 @@ __setresgid (gid_t rgid, gid_t egid, gid_t sgid) int result; # if __ASSUME_32BITUIDS > 0 || !defined __NR_setresgid - result = INLINE_SYSCALL (setresgid32, 3, rgid, egid, sgid); + result = INLINE_SETXID_SYSCALL (setresgid32, 3, rgid, egid, sgid); # else # ifdef __NR_setresgid32 if (__libc_missing_32bit_uids <= 0) { int saved_errno = errno; - result = INLINE_SYSCALL (setresgid32, 3, rgid, egid, sgid); + result = INLINE_SETXID_SYSCALL (setresgid32, 3, rgid, egid, sgid); if (result == 0) goto out; if (errno != ENOSYS) @@ -70,24 +64,12 @@ __setresgid (gid_t rgid, gid_t egid, gid_t sgid) return -1; } - result = INLINE_SYSCALL (setresgid, 3, rgid, egid, sgid); + result = INLINE_SETXID_SYSCALL (setresgid, 3, rgid, egid, sgid); # ifdef __NR_setresgid32 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_setresgid32; - cmd.id[0] = rgid; - cmd.id[1] = egid; - cmd.id[2] = sgid; - __libc_pthread_functions.ptr__nptl_setxid (&cmd); - } -#endif - return result; } libc_hidden_def (__setresgid) |