mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:17:36 +00:00
LibCore: Add syscall wrappers for setuid/seteuid/setgid/setegid
This commit is contained in:
parent
8bb9fe63b7
commit
2c3699e257
2 changed files with 32 additions and 0 deletions
|
@ -388,4 +388,32 @@ ErrorOr<pid_t> waitpid(pid_t waitee, int* wstatus, int options)
|
|||
return pid;
|
||||
}
|
||||
|
||||
ErrorOr<void> setuid(uid_t uid)
|
||||
{
|
||||
if (::setuid(uid) < 0)
|
||||
return Error::from_syscall("setuid"sv, -errno);
|
||||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<void> seteuid(uid_t uid)
|
||||
{
|
||||
if (::setuid(uid) < 0)
|
||||
return Error::from_syscall("seteuid"sv, -errno);
|
||||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<void> setgid(gid_t gid)
|
||||
{
|
||||
if (::setgid(gid) < 0)
|
||||
return Error::from_syscall("setgid"sv, -errno);
|
||||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<void> setegid(gid_t gid)
|
||||
{
|
||||
if (::setgid(gid) < 0)
|
||||
return Error::from_syscall("setegid"sv, -errno);
|
||||
return {};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -55,5 +55,9 @@ ErrorOr<struct group> getgrnam(StringView name);
|
|||
ErrorOr<void> clock_settime(clockid_t clock_id, struct timespec* ts);
|
||||
ErrorOr<pid_t> posix_spawnp(StringView const path, posix_spawn_file_actions_t* const file_actions, posix_spawnattr_t* const attr, char* const arguments[], char* const envp[]);
|
||||
ErrorOr<pid_t> waitpid(pid_t waitee, int* wstatus, int options);
|
||||
ErrorOr<void> setuid(uid_t);
|
||||
ErrorOr<void> seteuid(uid_t);
|
||||
ErrorOr<void> setgid(gid_t);
|
||||
ErrorOr<void> setegid(gid_t);
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue