Be explicit when setting euid to 0 before call to setreuid(0, 0)

This commit is contained in:
Todd C. Miller
2011-04-23 06:13:48 -04:00
parent f1bea0a215
commit 7c35601cf3

View File

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