Commit 919d0532 authored by Willy Tarreau's avatar Willy Tarreau Committed by Paul E. McKenney

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: default avatarWilly Tarreau <w@1wt.eu>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent d1209597
......@@ -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);
*/
......@@ -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);
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment