From: Todd C. Miller Date: Sat, 10 Mar 2012 20:29:46 +0000 (-0500) Subject: Make this work again on systems w/o seteuid(). X-Git-Tag: SUDO_1_8_5~1^2~162 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7971a5e49968894d3f51cdb094cc4cf3c3705744;p=sudo Make this work again on systems w/o seteuid(). --- diff --git a/plugins/sudoers/set_perms.c b/plugins/sudoers/set_perms.c index 6b8780c89..32255988a 100644 --- a/plugins/sudoers/set_perms.c +++ b/plugins/sudoers/set_perms.c @@ -1389,7 +1389,7 @@ set_perms(int perm) switch (perm) { case PERM_INITIAL: /* Stash initial state */ - state->ruid = getuid(); + state->ruid = geteuid() == ROOT_UID ? ROOT_UID : getuid(); state->rgid = getgid(); state->grlist = user_group_list; grlist_addref(state->grlist); @@ -1438,7 +1438,10 @@ set_perms(int perm) case PERM_RUNAS: case PERM_TIMESTAMP: /* Unsupported since we can't set euid. */ - perm_stack_depth--; + state->ruid = ostate->ruid; + state->rgid = ostate->rgid; + state->grlist = ostate->grlist; + grlist_addref(state->grlist); break; }