[sudo/f12/master] - added patch for #635250

Daniel Kopeček mildew at fedoraproject.org
Mon Sep 20 06:46:37 UTC 2010


commit 9047f16049012b311873aad7f78be4a2d5dbaa93
Author: Daniel Kopecek <dkopecek at redhat.com>
Date:   Mon Sep 20 08:46:34 2010 +0200

    - added patch for #635250

 sudo-1.7.4p4-sudoi.patch |   57 ++++++++++++++++++++++++++++++++++++++++++++++
 sudo.spec                |    8 +++++-
 2 files changed, 64 insertions(+), 1 deletions(-)
---
diff --git a/sudo-1.7.4p4-sudoi.patch b/sudo-1.7.4p4-sudoi.patch
new file mode 100644
index 0000000..52b8d85
--- /dev/null
+++ b/sudo-1.7.4p4-sudoi.patch
@@ -0,0 +1,57 @@
+--- env.c	Wed Aug 18 15:27:03 2010
++++ env.c	Tue Sep 14 11:41:50 2010
+@@ -608,10 +608,16 @@
+ #ifdef ENV_DEBUG
+     memset(env.envp, 0, env.env_size * sizeof(char *));
+ #endif
+-    if (def_env_reset || ISSET(sudo_mode, MODE_LOGIN_SHELL)) {
+-	/* Reset HOME based on target user unless keeping old value. */
+-	reset_home = TRUE;
+ 
++    /* 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 | MODE_LOGIN_SHELL) || 
++	    (ISSET(sudo_mode, MODE_SHELL) && def_set_home))
++	    reset_home = TRUE;
++    }
++
++    if (def_env_reset || ISSET(sudo_mode, MODE_LOGIN_SHELL)) {
+ 	/* Pull in vars we want to keep from the old environment. */
+ 	for (ep = old_envp; *ep; ep++) {
+ 	    int keepit;
+@@ -696,6 +702,11 @@
+ 	    if (!ISSET(didvar, DID_USERNAME))
+ 		sudo_setenv("USERNAME", user_name, FALSE);
+ 	}
++
++	/* If we didn't keep HOME, reset it based on target user. */
++	if (!ISSET(didvar, KEPT_HOME))
++	    reset_home = TRUE;
++
+ 	/*
+ 	 * Set MAIL to target user in -i mode or if MAIL is not preserved
+ 	 * from user's environment.
+@@ -709,13 +720,6 @@
+ 	    sudo_putenv(cp, ISSET(didvar, DID_MAIL), TRUE);
+ 	}
+     } else {
+-	/* 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) || 
+-		(ISSET(sudo_mode, MODE_SHELL) && def_set_home))
+-		reset_home = TRUE;
+-	}
+-
+ 	/*
+ 	 * Copy environ entries as long as they don't match env_delete or
+ 	 * env_check.
+@@ -765,7 +769,7 @@
+     }
+ 
+     /* Set $HOME to target user if not preserving user's value. */
+-    if (reset_home && !ISSET(didvar, KEPT_HOME))
++    if (reset_home)
+ 	sudo_setenv("HOME", runas_pw->pw_dir, TRUE);
+ 
+     /* Provide default values for $TERM and $PATH if they are not set. */
diff --git a/sudo.spec b/sudo.spec
index 7f253be..6370672 100644
--- a/sudo.spec
+++ b/sudo.spec
@@ -1,7 +1,7 @@
 Summary: Allows restricted root access for specified users
 Name: sudo
 Version: 1.7.4p4
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: ISC
 Group: Applications/System
 URL: http://www.courtesan.com/sudo/
@@ -30,6 +30,8 @@ Patch3: sudo-1.7.4p3-m4path.patch
 Patch4: sudo-1.7.4p3-sudolist.patch
 # getgrouplist() to determine group membership (#235915)
 Patch5: sudo-1.7.4p4-getgrouplist.patch
+# reset HOME when using the `-i' option (#635250)
+Patch6: sudo-1.7.4p4-sudoi.patch
 
 %description
 Sudo (superuser do) allows a system administrator to give certain
@@ -50,6 +52,7 @@ on many different machines.
 %patch3 -p1 -b .m4path
 %patch4 -p1 -b .sudolist
 %patch5 -p1 -b .getgrouplist
+%patch6 -p0 -b .sudoi
 
 %build
 # handle newer autoconf
@@ -144,6 +147,9 @@ rm -rf $RPM_BUILD_ROOT
 /bin/chmod 0440 /etc/sudoers || :
 
 %changelog
+* Mon Sep 20 2010 Daniel Kopecek <dkopecek at redhat.com> - 1.7.4p4-2
+- added patch for #635250
+
 * Wed Sep  8 2010 Daniel Kopecek <dkopecek at redhat.com> - 1.7.4p4-1
 - update to new upstream version
 - sudo now uses /var/db/sudo for timestamps


More information about the scm-commits mailing list