mirror of
https://github.com/linux-pam/linux-pam.git
synced 2024-11-24 10:22:47 +08:00
Relevant BUGIDs: Novell #66885
Purpose of commit: bugfix Commit summary: --------------- DISPLAY variable was not preserved, which means that pam_xauth only works if the calling application takes care of it.
This commit is contained in:
parent
4e5a337d39
commit
2324e72d69
@ -83,6 +83,7 @@ BerliOS Bugs are marked with (BerliOS #XXXX).
|
||||
* pam_shells: correct README
|
||||
* libpam: Fix debug code (kukuk)
|
||||
* pam_limits: Fix order of LIMITS_DEF_* priorities (kukuk)
|
||||
* pam_xauth: preserve DISPLAY variable (Novell #66885 - kukuk)
|
||||
|
||||
0.78: Do Nov 18 14:48:36 CET 2004
|
||||
|
||||
|
@ -542,13 +542,33 @@ pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv)
|
||||
}
|
||||
|
||||
/* Unset any old XAUTHORITY variable in the environment. */
|
||||
if (getenv(XAUTHENV)) {
|
||||
unsetenv(XAUTHENV);
|
||||
}
|
||||
if (getenv (XAUTHENV))
|
||||
unsetenv (XAUTHENV);
|
||||
|
||||
/* Set the new variable in the environment. */
|
||||
pam_putenv(pamh, xauthority);
|
||||
putenv(xauthority); /* The environment owns this string now. */
|
||||
if (pam_putenv (pamh, xauthority) != PAM_SUCCESS)
|
||||
syslog (LOG_DEBUG, "pam_xauth: can't set environment variable '%s'",
|
||||
xauthority);
|
||||
putenv (xauthority); /* The environment owns this string now. */
|
||||
|
||||
/* set $DISPLAY in pam handle to make su - work */
|
||||
{
|
||||
char *d = (char *) malloc (strlen ("DISPLAY=") +
|
||||
strlen (display) + 1);
|
||||
if (d == NULL)
|
||||
{
|
||||
syslog (LOG_DEBUG, "pam_xauth: memory exhausted\n");
|
||||
return PAM_SESSION_ERR;
|
||||
}
|
||||
strcpy (d, "DISPLAY=");
|
||||
strcat (d, display);
|
||||
|
||||
if (pam_putenv (pamh, d) != PAM_SUCCESS)
|
||||
syslog (LOG_DEBUG,
|
||||
"pam_xauth: can't set environment variable '%s'",
|
||||
d);
|
||||
free (d);
|
||||
}
|
||||
|
||||
/* Merge the cookie we read before into the new file. */
|
||||
if (debug) {
|
||||
|
Loading…
Reference in New Issue
Block a user