1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-30 21:58:10 +00:00

Kernel+LibC: Remove setreuid() / setregid() again

It looks like they're considered a bad idea, so let's not add
them before we need them. I figured it's good to have them in
git history if we ever do need them though, hence the add/remove
dance.
This commit is contained in:
Nico Weber 2020-06-17 14:08:14 -04:00 committed by Andreas Kling
parent a38754d9f2
commit dd53e070c5
5 changed files with 0 additions and 60 deletions

View file

@ -2187,48 +2187,6 @@ int Process::sys$setgid(gid_t gid)
return 0;
}
int Process::sys$setreuid(uid_t ruid, uid_t euid)
{
REQUIRE_PROMISE(id);
// This has FreeBSD semantics.
// Linux and Solaris also allow id == m_suid.
auto ok = [this](uid_t id) { return id == (uid_t)-1 || id == m_uid || id == m_euid; };
if ((!ok(ruid) || !ok(euid)) && !is_superuser())
return -EPERM;
if (ruid != (uid_t)-1)
m_uid = ruid;
if (euid != (uid_t)-1)
m_euid = euid;
if (ruid != (uid_t)-1 || m_euid != m_uid)
m_suid = m_euid;
return 0;
}
int Process::sys$setregid(gid_t rgid, gid_t egid)
{
REQUIRE_PROMISE(id);
// This has FreeBSD semantics.
// Linux and Solaris also allow id == m_sgid.
auto ok = [this](gid_t id) { return id == (gid_t)-1 || id == m_gid || id == m_egid; };
if ((!ok(rgid) || !ok(egid)) && !is_superuser())
return -EPERM;
if (rgid != (gid_t)-1)
m_gid = rgid;
if (egid != (gid_t)-1)
m_egid = egid;
if (rgid != (gid_t)-1 || m_egid != m_gid)
m_sgid = m_egid;
return 0;
}
int Process::sys$setresuid(uid_t ruid, uid_t euid, uid_t suid)
{
REQUIRE_PROMISE(id);