1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 13:57:35 +00:00

LibCore: Add syscall wrappers for setuid/seteuid/setgid/setegid

This commit is contained in:
Andreas Kling 2021-12-16 19:17:44 +01:00
parent 8bb9fe63b7
commit 2c3699e257
2 changed files with 32 additions and 0 deletions

View file

@ -388,4 +388,32 @@ ErrorOr<pid_t> waitpid(pid_t waitee, int* wstatus, int options)
return pid; 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 {};
}
} }

View file

@ -55,5 +55,9 @@ ErrorOr<struct group> getgrnam(StringView name);
ErrorOr<void> clock_settime(clockid_t clock_id, struct timespec* ts); 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> 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<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);
} }