diff options
Diffstat (limited to 'libc/sysdeps/linux/common/setresuid.c')
| -rw-r--r-- | libc/sysdeps/linux/common/setresuid.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/libc/sysdeps/linux/common/setresuid.c b/libc/sysdeps/linux/common/setresuid.c index 1249611a9..54b92465c 100644 --- a/libc/sysdeps/linux/common/setresuid.c +++ b/libc/sysdeps/linux/common/setresuid.c @@ -7,22 +7,25 @@ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ -#include "syscalls.h" -#ifdef __USE_GNU +#include <sys/syscall.h> +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__ #include <unistd.h> -libc_hidden_proto(setresuid) - #if defined(__NR_setresuid32) # undef __NR_setresuid # define __NR_setresuid __NR_setresuid32 + +libc_hidden_proto(setresuid) _syscall3(int, setresuid, uid_t, ruid, uid_t, euid, uid_t, suid) +libc_hidden_def(setresuid) #elif defined(__NR_setresuid) + # define __NR___syscall_setresuid __NR_setresuid static inline _syscall3(int, __syscall_setresuid, __kernel_uid_t, rgid, __kernel_uid_t, egid, __kernel_uid_t, sgid); +libc_hidden_proto(setresuid) int setresuid(uid_t ruid, uid_t euid, uid_t suid) { if (((ruid + 1) > (uid_t) ((__kernel_uid_t) - 1U)) @@ -33,7 +36,8 @@ int setresuid(uid_t ruid, uid_t euid, uid_t suid) } return (__syscall_setresuid(ruid, euid, suid)); } +libc_hidden_def(setresuid) + #endif -libc_hidden_def(setresuid) #endif |
