From 16f646db418aff5b22984b1ea22f05d6e70e072d Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 11 Sep 2017 16:44:15 -0400 Subject: manager: don't allow autologin from transient displays In theory, we're only only supposed to allow autologin the first time a session is run, but we only count a session run, once it's finished. This means that if a user creates a transient session to user switch, before they've logged out the first time at boot up, that transient session will begin autologin as well (which actually gets treated as an auto unlock). This commit makes sure autologin is only ever run on the initial display. https://bugzilla.gnome.org/show_bug.cgi?id=783779 --- daemon/gdm-manager.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c index d080b308..6ef75bd6 100644 --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c @@ -1573,10 +1573,13 @@ set_up_session (GdmManager *manager, ActUserManager *user_manager; ActUser *user; gboolean loaded; + gboolean is_initial_display = FALSE; gboolean autologin_enabled = FALSE; char *username = NULL; - if (!manager->priv->ran_once && display_is_on_seat0 (display)) + g_object_get (G_OBJECT (display), "is-initial", &is_initial_display, NULL); + + if (!manager->priv->ran_once && is_initial_display) autologin_enabled = get_automatic_login_details (manager, &username); if (!autologin_enabled) { -- cgit v1.2.1