summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2017-10-10 12:49:10 -0400
committerRay Strode <rstrode@redhat.com>2017-10-10 12:56:04 -0400
commitb5fb83e5d1cc70685ddcf88a66b3f29a9857d7b9 (patch)
tree9adb61cd1bacda67ed4bfcf14774b15ebb9c09b0
parent22f1e3c69d5df9472c5644dce2dab2094cfb1248 (diff)
downloadgdm-b5fb83e5d1cc70685ddcf88a66b3f29a9857d7b9.tar.gz
manager: don't record wtmp entries when user unknown
Right now we end up writing wtmp entries for the login screen user into /var/log/wtmp, but with a funky username of "(unknown)". The login screen session shouldn't get a wtmp entry, and we shouldn't ever add wtmp entries for sessions we don't know the username for. This commit fixes that. https://bugzilla.gnome.org/show_bug.cgi?id=788784
-rw-r--r--daemon/gdm-manager.c5
-rw-r--r--daemon/gdm-session-record.c15
2 files changed, 6 insertions, 14 deletions
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index 256b6447..c3293d95 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -677,6 +677,11 @@ add_session_record (GdmManager *manager,
display_device = NULL;
username = gdm_session_get_username (session);
+
+ if (username == NULL) {
+ goto out;
+ }
+
g_object_get (G_OBJECT (session),
"display-name", &display_name,
"display-hostname", &hostname,
diff --git a/daemon/gdm-session-record.c b/daemon/gdm-session-record.c
index 32933ef0..487f1004 100644
--- a/daemon/gdm-session-record.c
+++ b/daemon/gdm-session-record.c
@@ -61,21 +61,8 @@
static void
record_set_username (UTMP *u,
- const char *user_name)
+ const char *username)
{
- const char *username;
-
- /*
- * It is possible that PAM failed before it mapped the user
- * input into a valid username, so we fallback to try using
- * "(unknown)"
- */
- if (user_name != NULL) {
- username = user_name;
- } else {
- username = "(unknown)";
- }
-
#if defined(HAVE_UT_UT_USER)
strncpy (u->ut_user,
username,