From: Todd C. Miller Date: Tue, 14 Sep 2010 15:44:39 +0000 (-0400) Subject: Take MODE_LOGIN_SHELL into account when initially setting reset_home X-Git-Tag: SUDO_1_7_5~148 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0d023cd0d19a8fa714d2db5ae1148b5725ad959a;p=sudo Take MODE_LOGIN_SHELL into account when initially setting reset_home instead of special-casing it later. --HG-- branch : 1.7 --- diff --git a/env.c b/env.c index 37762fe9e..2be75d8ee 100644 --- a/env.c +++ b/env.c @@ -611,7 +611,8 @@ rebuild_env(noexec) /* Reset HOME based on target user if configured to. */ if (ISSET(sudo_mode, MODE_RUN)) { - if (def_always_set_home || ISSET(sudo_mode, MODE_RESET_HOME) || + if (def_always_set_home || + ISSET(sudo_mode, MODE_RESET_HOME | MODE_LOGIN_SHELL) || (ISSET(sudo_mode, MODE_SHELL) && def_set_home)) reset_home = TRUE; } @@ -702,8 +703,8 @@ rebuild_env(noexec) sudo_setenv("USERNAME", user_name, FALSE); } - /* If not a login shell and it wasn't kept above, reset HOME. */ - if (ISSET(sudo_mode, MODE_LOGIN_SHELL) || !ISSET(didvar, KEPT_HOME)) + /* If we didn't keep HOME, reset it based on target user. */ + if (!ISSET(didvar, KEPT_HOME)) reset_home = TRUE; /*