mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 12:27:35 +00:00
LibCore: Add Core::System::drop_privileges()
In a few places we intentionally drop privileges to reduce the potential security surface area of networked program, with the pattern of: ``` if (setgid(getgid()) || setuid(getuid()) { return 1; } ``` We can make this a bit nicer to use by creating a wrapper.
This commit is contained in:
parent
7403342387
commit
6eebd69b70
2 changed files with 12 additions and 0 deletions
|
@ -726,6 +726,17 @@ ErrorOr<pid_t> setsid()
|
|||
return rc;
|
||||
}
|
||||
|
||||
ErrorOr<void> drop_privileges()
|
||||
{
|
||||
auto gid_result = setgid(getgid());
|
||||
auto uid_result = setuid(getuid());
|
||||
|
||||
if (gid_result.is_error() || uid_result.is_error())
|
||||
return Error::from_string_literal("Failed to drop privileges");
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<bool> isatty(int fd)
|
||||
{
|
||||
int rc = ::isatty(fd);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue