From f4f63004996fcac42bf3f9a43af44735c66a2862 Mon Sep 17 00:00:00 2001 From: nekral-guest Date: Fri, 5 Jun 2009 22:19:38 +0000 Subject: [PATCH] * NEWS, src/su.c: Preserve the DISPLAY and XAUTHORITY environment variables, even with --login. This was not the case before in the PAM version. --- ChangeLog | 6 ++++++ NEWS | 3 +++ src/su.c | 6 ++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 522c3ddf..34d02d40 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-06-06 Nicolas François + + * NEWS, src/su.c: Preserve the DISPLAY and XAUTHORITY environment + variables, even with --login. This was not the case before in the + PAM version. + 2009-06-06 Nicolas François * src/useradd.c, src/groupmod.c, src/groupadd.c, src/faillog.c: diff --git a/NEWS b/NEWS index f387544f..8b96b351 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ $Id$ shadow-4.1.4.1 -> shadow-4.1.4.2 UNRELEASED +- su + * Preserve the DISPLAY and XAUTHORITY environment variables. This was + only the case in the non PAM enabled versions. shadow-4.1.4 -> shadow-4.1.4.1 2009-05-22 diff --git a/src/su.c b/src/su.c index 3cb66f66..9f81dbed 100644 --- a/src/su.c +++ b/src/su.c @@ -559,7 +559,8 @@ int main (int argc, char **argv) * (note: in the case of a subsystem, the shell will be restricted, * and this won't be executed on the first pass) */ - if (fakelogin && change_environment) { + if (change_environment) { + if (fakelogin) { /* * The terminal type will be left alone if it is present in * the environment already. @@ -595,6 +596,7 @@ int main (int argc, char **argv) if (NULL != cp) { addenv (cp, NULL); /* set the default $HZ, if one */ } +#endif /* !USE_PAM */ /* * Also leave DISPLAY and XAUTHORITY if present, else @@ -608,7 +610,7 @@ int main (int argc, char **argv) if (NULL != cp) { addenv ("XAUTHORITY", cp); } -#endif /* !USE_PAM */ + } } else { while (NULL != *envp) { addenv (*envp, NULL);