diff options
author | Thorsten Kukuk <kukuk@thkukuk.de> | 2008-11-19 14:24:47 +0000 |
---|---|---|
committer | Thorsten Kukuk <kukuk@thkukuk.de> | 2008-11-19 14:24:47 +0000 |
commit | dade683fe1334eccfae157517fa4f8b9a77d36cb (patch) | |
tree | 3dbcbb3696a1eb62c3f5f5b8567c02295737da4d /modules/pam_xauth/pam_xauth.c | |
parent | 0a5ee586bed8dbb537ab23080bc19cf6b82812e7 (diff) | |
download | pam-dade683fe1334eccfae157517fa4f8b9a77d36cb.tar.gz pam-dade683fe1334eccfae157517fa4f8b9a77d36cb.tar.bz2 pam-dade683fe1334eccfae157517fa4f8b9a77d36cb.zip |
Relevant BUGIDs:
Purpose of commit: missing part of new feature
Commit summary:
---------------
2008-11-19 Thorsten Kukuk <kukuk@thkukuk.de>
* modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Finish
implementation of type=STRING option.
* modules/pam_pwhistory/pam_pwhistory.8.xml: Document
"type=STRING" option.
Diffstat (limited to 'modules/pam_xauth/pam_xauth.c')
-rw-r--r-- | modules/pam_xauth/pam_xauth.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/modules/pam_xauth/pam_xauth.c b/modules/pam_xauth/pam_xauth.c index 36f30708..518c015a 100644 --- a/modules/pam_xauth/pam_xauth.c +++ b/modules/pam_xauth/pam_xauth.c @@ -280,7 +280,7 @@ check_acl(pam_handle_t *pamh, return noent_code; default: if (debug) { - pam_syslog(pamh, LOG_ERR, + pam_syslog(pamh, LOG_DEBUG, "error opening %s: %m", path); } return PAM_PERM_DENIED; @@ -293,7 +293,8 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { char *cookiefile = NULL, *xauthority = NULL, - *cookie = NULL, *display = NULL, *tmp = NULL; + *cookie = NULL, *display = NULL, *tmp = NULL, + *xauthlocalhostname = NULL; const char *user, *xauth = NULL; struct passwd *tpwd, *rpwd; int fd, i, debug = 0; @@ -588,14 +589,30 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, if (asprintf(&d, "DISPLAY=%s", display) < 0) { - pam_syslog(pamh, LOG_DEBUG, "out of memory"); + pam_syslog(pamh, LOG_ERR, "out of memory"); cookiefile = NULL; retval = PAM_SESSION_ERR; goto cleanup; } if (pam_putenv (pamh, d) != PAM_SUCCESS) - pam_syslog (pamh, LOG_DEBUG, + pam_syslog (pamh, LOG_ERR, + "can't set environment variable '%s'", d); + free (d); + } + + /* set XAUTHLOCALHOSTNAME to make sure that su - work under gnome */ + if ((xauthlocalhostname = getenv("XAUTHLOCALHOSTNAME")) != NULL) { + char *d; + + if (asprintf(&d, "XAUTHLOCALHOSTNAME=%s", xauthlocalhostname) < 0) { + pam_syslog(pamh, LOG_ERR, "out of memory"); + retval = PAM_SESSION_ERR; + goto cleanup; + } + + if (pam_putenv (pamh, d) != PAM_SUCCESS) + pam_syslog (pamh, LOG_ERR, "can't set environment variable '%s'", d); free (d); } |