From 84b52658215a22c55625896d932cb8e6416ef407 Mon Sep 17 00:00:00 2001 From: Brian Cameron Date: Wed, 8 Apr 2009 08:22:45 +0000 Subject: Correct reversed if-test. Fix setting of PAM_TTY on Solaris. Also make 2009-04-08 Brian Cameron * daemon/gdm-session-solaris-auditor.c: Correct reversed if-test. * daemon/gdm-session-worker.c: Fix setting of PAM_TTY on Solaris. Also make sure that the auditor is provided the username on failed login by getting PAM_USER. Without this patch, if you select the "Other" button and have a failed login, username will not be set. svn path=/trunk/; revision=6803 --- ChangeLog | 14 +++++++++++--- daemon/gdm-session-solaris-auditor.c | 12 ++++++------ daemon/gdm-session-worker.c | 10 ++++++++++ 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index f430aefa..b7a563ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-04-08 Brian Cameron + + * daemon/gdm-session-solaris-auditor.c: Correct reversed if-test. + * daemon/gdm-session-worker.c: Fix setting of PAM_TTY on Solaris. + Also make sure that the auditor is provided the username on failed + login by getting PAM_USER. Without this patch, if you select the + "Other" button and have a failed login, username will not be set. + 2009-04-01 Hans Petter Jansson Bug 568590 - Environment doesn't get passed on to jobs, leading @@ -157,9 +165,9 @@ 2009-03-13 Brian Cameron * daemon/xdmcp-chooser-slave-main.c, daemon/simple-slave-main.c: - Call gdm_settings_direct_init. Otherwise when these programs try - to read the xdmcp/PingIntervalSeconds configuration value, they - fail to load it. + Call gdm_settings_direct_init. Otherwise when these programs try + to read the xdmcp/PingIntervalSeconds configuration value, they + fail to load it. 2009-03-13 Ray Strode diff --git a/daemon/gdm-session-solaris-auditor.c b/daemon/gdm-session-solaris-auditor.c index d8eb6379..badbdbba 100644 --- a/daemon/gdm-session-solaris-auditor.c +++ b/daemon/gdm-session-solaris-auditor.c @@ -177,17 +177,17 @@ gdm_session_solaris_auditor_report_login_failure (GdmSessionAuditor *auditor, /* If display is on console or VT */ if (hostname != NULL && hostname[0] != '\0') { - /* login from the local host */ - if (adt_load_ttyname (display_device, &tid) != 0) { - syslog (LOG_AUTH | LOG_ALERT, - "adt_loadhostname (localhost): %m"); - } - } else { /* Login from a remote host */ if (adt_load_hostname (hostname, &tid) != 0) { syslog (LOG_AUTH | LOG_ALERT, "adt_loadhostname (%s): %m", hostname); } + } else { + /* login from the local host */ + if (adt_load_ttyname (display_device, &tid) != 0) { + syslog (LOG_AUTH | LOG_ALERT, + "adt_loadhostname (localhost): %m"); + } } if (adt_set_user (ah, diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c index ea4b8bde..fa39c3b2 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c @@ -978,6 +978,12 @@ gdm_session_worker_uninitialize_pam (GdmSessionWorker *worker, pam_close_session (worker->priv->pam_handle, 0); gdm_session_auditor_report_logout (worker->priv->auditor); } else { + void *p; + + if ((pam_get_item (worker->priv->pam_handle, PAM_USER, &p)) == PAM_SUCCESS) { + gdm_session_auditor_set_username (worker->priv->auditor, (const char *)p); + } + gdm_session_auditor_report_login_failure (worker->priv->auditor, status, pam_strerror (worker->priv->pam_handle, status)); @@ -1000,7 +1006,11 @@ static char * _get_tty_for_pam (const char *x11_display_name, const char *display_device) { +#ifdef __sun + return g_strdup (display_device); +#else return g_strdup (x11_display_name); +#endif } #ifdef PAM_XAUTHDATA -- cgit v1.2.1