]> granicus.if.org Git - sudo/commitdiff
Be explicit when setting euid to 0 before call to setreuid(0, 0)
authorTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 23 Apr 2011 10:13:48 +0000 (06:13 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 23 Apr 2011 10:13:48 +0000 (06:13 -0400)
plugins/sudoers/set_perms.c

index e8b9f633f89e2613db0ac8556e81529c102a6832..17c87b4a6dd9372ad802877b900419dc39a8a8e5 100644 (file)
@@ -383,9 +383,7 @@ set_perms(int perm)
         * setreuid(0, 0) may fail on some systems
         * when the euid is not already 0.
         */
-       state->ruid = -1;
-       state->euid = ROOT_UID;
-       if (setreuid(ID(ruid), ID(euid))) {
+       if (setreuid(-1, ROOT_UID)) {
            errstr = "setreuid(-1, ROOT_UID)";
            goto bad;
        }
@@ -394,6 +392,7 @@ set_perms(int perm)
            goto bad;
        }
        state->ruid = ROOT_UID;
+       state->euid = ROOT_UID;
        state->rgid = -1;
        state->egid = -1;
        state->groups = NULL;