* src/su.c: Fix handling of environment variables when

the environment is not changed. In particular, this makes su
	behave as documented regarding PATH and IFS (i.e. they are reset)
	when -p is provided.
This commit is contained in:
nekral-guest 2010-08-28 19:55:31 +00:00
parent bf480028f5
commit 991ce97170
2 changed files with 13 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2010-08-28 Nicolas François <nicolas.francois@centraliens.net>
* src/su.c: Fix handling of environment variables when
the environment is not changed. In particular, this makes su
behave as documented regarding PATH and IFS (i.e. they are reset)
when -p is provided.
2010-08-28 Nicolas François <nicolas.francois@centraliens.net>
* man/su.1.xml: Fix typo.

View File

@ -933,13 +933,13 @@ int main (int argc, char **argv)
exit (1);
}
if (change_environment) {
/* we need to setup the environment *after* pam_open_session(),
* else the UID is changed before stuff like pam_xauth could
* run, and we cannot access /etc/shadow and co
*/
environ = newenvp; /* make new environment active */
/* we need to setup the environment *after* pam_open_session(),
* else the UID is changed before stuff like pam_xauth could
* run, and we cannot access /etc/shadow and co
*/
environ = newenvp; /* make new environment active */
if (change_environment) {
/* update environment with all pam set variables */
envcp = pam_getenvlist (pamh);
if (NULL != envcp) {