Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
gdm
gdm-fix-pam-auditing.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gdm-fix-pam-auditing.patch of Package gdm
Index: daemon/gdm-session-linux-auditor.c =================================================================== --- daemon/gdm-session-linux-auditor.c (revision 6589) +++ daemon/gdm-session-linux-auditor.c (revision 6593) @@ -45,8 +45,9 @@ static void gdm_session_linux_auditor_fi G_DEFINE_TYPE (GdmSessionLinuxAuditor, gdm_session_linux_auditor, GDM_TYPE_SESSION_AUDITOR) static void -gdm_session_linux_auditor_report_login_attempt (GdmSessionAuditor *auditor, - gboolean was_successful) +log_user_message (GdmSessionAuditor *auditor, + gint type, + gint result) { GdmSessionLinuxAuditor *linux_auditor; char buf[512]; @@ -70,14 +71,14 @@ gdm_session_linux_auditor_report_login_a if (pw != NULL) { g_snprintf (buf, sizeof (buf), "uid=%d", pw->pw_uid); - audit_log_user_message (linux_auditor->priv->audit_fd, AUDIT_USER_LOGIN, + audit_log_user_message (linux_auditor->priv->audit_fd, type, buf, hostname, NULL, display_device, - was_successful != FALSE); + result); } else { g_snprintf (buf, sizeof (buf), "acct=%s", username); - audit_log_user_message (linux_auditor->priv->audit_fd, AUDIT_USER_LOGIN, + audit_log_user_message (linux_auditor->priv->audit_fd, type, buf, hostname, NULL, display_device, - was_successful != FALSE); + result); } g_free (username); @@ -88,7 +89,7 @@ gdm_session_linux_auditor_report_login_a static void gdm_session_linux_auditor_report_login (GdmSessionAuditor *auditor) { - gdm_session_linux_auditor_report_login_attempt (auditor, TRUE); + log_user_message (auditor, AUDIT_USER_LOGIN, 1); } static void @@ -96,8 +97,13 @@ gdm_session_linux_auditor_report_login_f int pam_error_code, const char *pam_error_string) { + log_user_message (auditor, AUDIT_USER_LOGIN, 0); +} - gdm_session_linux_auditor_report_login_attempt (auditor, FALSE); +static void +gdm_session_linux_auditor_report_logout (GdmSessionAuditor *auditor) +{ + log_user_message (auditor, AUDIT_USER_LOGOUT, 1); } static void @@ -113,6 +119,7 @@ gdm_session_linux_auditor_class_init (Gd auditor_class->report_login = gdm_session_linux_auditor_report_login; auditor_class->report_login_failure = gdm_session_linux_auditor_report_login_failure; + auditor_class->report_logout = gdm_session_linux_auditor_report_logout; g_type_class_add_private (auditor_class, sizeof (GdmSessionLinuxAuditorPrivate)); } Index: daemon/gdm-session-worker.c =================================================================== --- daemon/gdm-session-worker.c (revision 6589) +++ daemon/gdm-session-worker.c (revision 6593) @@ -974,10 +974,6 @@ gdm_session_worker_uninitialize_pam (Gdm if (worker->priv->pam_handle == NULL) return; - if (worker->priv->state >= GDM_SESSION_WORKER_STATE_ACCREDITED) { - pam_setcred (worker->priv->pam_handle, PAM_DELETE_CRED); - } - if (worker->priv->state >= GDM_SESSION_WORKER_STATE_SESSION_OPENED) { pam_close_session (worker->priv->pam_handle, 0); gdm_session_auditor_report_logout (worker->priv->auditor); @@ -987,6 +983,10 @@ gdm_session_worker_uninitialize_pam (Gdm pam_strerror (worker->priv->pam_handle, status)); } + if (worker->priv->state >= GDM_SESSION_WORKER_STATE_ACCREDITED) { + pam_setcred (worker->priv->pam_handle, PAM_DELETE_CRED); + } + pam_end (worker->priv->pam_handle, status); worker->priv->pam_handle = NULL;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor