From 0d023cd0d19a8fa714d2db5ae1148b5725ad959a Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Tue, 14 Sep 2010 11:44:39 -0400 Subject: [PATCH] Take MODE_LOGIN_SHELL into account when initially setting reset_home instead of special-casing it later. --HG-- branch : 1.7 --- env.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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; /* -- 2.50.1