tools/nolibc: add getuid() and geteuid()
This can be useful to avoid attempting some privileged operations, starting from the nolibc-test tool that gets two failures when not privileged. We call getuid32() and geteuid32() when they are defined, and fall back to getuid() and geteuid() otherwise. Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
d1209597ff
commit
919d0532d4
|
@ -410,6 +410,27 @@ int getdents64(int fd, struct linux_dirent64 *dirp, int count)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* uid_t geteuid(void);
|
||||||
|
*/
|
||||||
|
|
||||||
|
static __attribute__((unused))
|
||||||
|
uid_t sys_geteuid(void)
|
||||||
|
{
|
||||||
|
#ifdef __NR_geteuid32
|
||||||
|
return my_syscall0(__NR_geteuid32);
|
||||||
|
#else
|
||||||
|
return my_syscall0(__NR_geteuid);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static __attribute__((unused))
|
||||||
|
uid_t geteuid(void)
|
||||||
|
{
|
||||||
|
return sys_geteuid();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* pid_t getpgid(pid_t pid);
|
* pid_t getpgid(pid_t pid);
|
||||||
*/
|
*/
|
||||||
|
@ -544,6 +565,27 @@ int gettimeofday(struct timeval *tv, struct timezone *tz)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* uid_t getuid(void);
|
||||||
|
*/
|
||||||
|
|
||||||
|
static __attribute__((unused))
|
||||||
|
uid_t sys_getuid(void)
|
||||||
|
{
|
||||||
|
#ifdef __NR_getuid32
|
||||||
|
return my_syscall0(__NR_getuid32);
|
||||||
|
#else
|
||||||
|
return my_syscall0(__NR_getuid);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static __attribute__((unused))
|
||||||
|
uid_t getuid(void)
|
||||||
|
{
|
||||||
|
return sys_getuid();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* int ioctl(int fd, unsigned long req, void *value);
|
* int ioctl(int fd, unsigned long req, void *value);
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue