Parcourir la source

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.
Nico Weber il y a 5 ans
Parent
commit
dd53e070c5
5 fichiers modifiés avec 0 ajouts et 60 suppressions
  1. 0 42
      Kernel/Process.cpp
  2. 0 2
      Kernel/Process.h
  3. 0 2
      Kernel/Syscall.h
  4. 0 12
      Libraries/LibC/unistd.cpp
  5. 0 2
      Libraries/LibC/unistd.h

+ 0 - 42
Kernel/Process.cpp

@@ -2187,48 +2187,6 @@ int Process::sys$setgid(gid_t gid)
     return 0;
     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)
 int Process::sys$setresuid(uid_t ruid, uid_t euid, uid_t suid)
 {
 {
     REQUIRE_PROMISE(id);
     REQUIRE_PROMISE(id);

+ 0 - 2
Kernel/Process.h

@@ -249,8 +249,6 @@ public:
     int sys$setegid(gid_t);
     int sys$setegid(gid_t);
     int sys$setuid(uid_t);
     int sys$setuid(uid_t);
     int sys$setgid(gid_t);
     int sys$setgid(gid_t);
-    int sys$setreuid(uid_t, uid_t);
-    int sys$setregid(gid_t, gid_t);
     int sys$setresuid(uid_t, uid_t, uid_t);
     int sys$setresuid(uid_t, uid_t, uid_t);
     int sys$setresgid(gid_t, gid_t, gid_t);
     int sys$setresgid(gid_t, gid_t, gid_t);
     unsigned sys$alarm(unsigned seconds);
     unsigned sys$alarm(unsigned seconds);

+ 0 - 2
Kernel/Syscall.h

@@ -98,8 +98,6 @@ namespace Kernel {
     __ENUMERATE_SYSCALL(setegid)            \
     __ENUMERATE_SYSCALL(setegid)            \
     __ENUMERATE_SYSCALL(setuid)             \
     __ENUMERATE_SYSCALL(setuid)             \
     __ENUMERATE_SYSCALL(setgid)             \
     __ENUMERATE_SYSCALL(setgid)             \
-    __ENUMERATE_SYSCALL(setreuid)           \
-    __ENUMERATE_SYSCALL(setregid)           \
     __ENUMERATE_SYSCALL(setresuid)          \
     __ENUMERATE_SYSCALL(setresuid)          \
     __ENUMERATE_SYSCALL(setresgid)          \
     __ENUMERATE_SYSCALL(setresgid)          \
     __ENUMERATE_SYSCALL(alarm)              \
     __ENUMERATE_SYSCALL(alarm)              \

+ 0 - 12
Libraries/LibC/unistd.cpp

@@ -491,18 +491,6 @@ int setgid(gid_t gid)
     __RETURN_WITH_ERRNO(rc, rc, -1);
     __RETURN_WITH_ERRNO(rc, rc, -1);
 }
 }
 
 
-int setreuid(uid_t ruid, uid_t euid)
-{
-    int rc = syscall(SC_setreuid, ruid, euid);
-    __RETURN_WITH_ERRNO(rc, rc, -1);
-}
-
-int setregid(gid_t rgid, gid_t egid)
-{
-    int rc = syscall(SC_setregid, rgid, egid);
-    __RETURN_WITH_ERRNO(rc, rc, -1);
-}
-
 int setresuid(uid_t ruid, uid_t euid, uid_t suid)
 int setresuid(uid_t ruid, uid_t euid, uid_t suid)
 {
 {
     int rc = syscall(SC_setresuid, ruid, euid, suid);
     int rc = syscall(SC_setresuid, ruid, euid, suid);

+ 0 - 2
Libraries/LibC/unistd.h

@@ -92,8 +92,6 @@ int seteuid(uid_t);
 int setegid(gid_t);
 int setegid(gid_t);
 int setuid(uid_t);
 int setuid(uid_t);
 int setgid(gid_t);
 int setgid(gid_t);
-int setreuid(uid_t, uid_t);
-int setregid(gid_t, gid_t);
 int setresuid(uid_t, uid_t, uid_t);
 int setresuid(uid_t, uid_t, uid_t);
 int setresgid(gid_t, gid_t, gid_t);
 int setresgid(gid_t, gid_t, gid_t);
 pid_t tcgetpgrp(int fd);
 pid_t tcgetpgrp(int fd);