]> git.pld-linux.org Git - packages/sudo.git/blame - bug-440.patch
- Unadapterized per comments from glen.
[packages/sudo.git] / bug-440.patch
CommitLineData
ee2033f4
ER
1--- 1.7.4p4/env.c Wed Aug 18 15:27:03 2010
2+++ 1.7/env.c Tue Sep 14 11:41:50 2010
3@@ -608,10 +608,16 @@
4 #ifdef ENV_DEBUG
5 memset(env.envp, 0, env.env_size * sizeof(char *));
6 #endif
7- if (def_env_reset || ISSET(sudo_mode, MODE_LOGIN_SHELL)) {
8- /* Reset HOME based on target user unless keeping old value. */
9- reset_home = TRUE;
10
11+ /* Reset HOME based on target user if configured to. */
12+ if (ISSET(sudo_mode, MODE_RUN)) {
13+ if (def_always_set_home ||
14+ ISSET(sudo_mode, MODE_RESET_HOME | MODE_LOGIN_SHELL) ||
15+ (ISSET(sudo_mode, MODE_SHELL) && def_set_home))
16+ reset_home = TRUE;
17+ }
18+
19+ if (def_env_reset || ISSET(sudo_mode, MODE_LOGIN_SHELL)) {
20 /* Pull in vars we want to keep from the old environment. */
21 for (ep = old_envp; *ep; ep++) {
22 int keepit;
23@@ -696,6 +702,11 @@
24 if (!ISSET(didvar, DID_USERNAME))
25 sudo_setenv("USERNAME", user_name, FALSE);
26 }
27+
28+ /* If we didn't keep HOME, reset it based on target user. */
29+ if (!ISSET(didvar, KEPT_HOME))
30+ reset_home = TRUE;
31+
32 /*
33 * Set MAIL to target user in -i mode or if MAIL is not preserved
34 * from user's environment.
35@@ -709,13 +720,6 @@
36 sudo_putenv(cp, ISSET(didvar, DID_MAIL), TRUE);
37 }
38 } else {
39- /* Reset HOME based on target user if configured to. */
40- if (ISSET(sudo_mode, MODE_RUN)) {
41- if (def_always_set_home || ISSET(sudo_mode, MODE_RESET_HOME) ||
42- (ISSET(sudo_mode, MODE_SHELL) && def_set_home))
43- reset_home = TRUE;
44- }
45-
46 /*
47 * Copy environ entries as long as they don't match env_delete or
48 * env_check.
49@@ -765,7 +769,7 @@
50 }
51
52 /* Set $HOME to target user if not preserving user's value. */
53- if (reset_home && !ISSET(didvar, KEPT_HOME))
54+ if (reset_home)
55 sudo_setenv("HOME", runas_pw->pw_dir, TRUE);
56
57 /* Provide default values for $TERM and $PATH if they are not set. */
This page took 0.081503 seconds and 4 git commands to generate.