diff --git a/0001-Handle-conflicting-sessions.patch b/0001-Handle-conflicting-sessions.patch index ca4307f..bfebf39 100644 --- a/0001-Handle-conflicting-sessions.patch +++ b/0001-Handle-conflicting-sessions.patch @@ -73,7 +73,7 @@ index 9c10adff3..051420ac8 100644 + if (res < 0) + return FALSE; + -+ return g_str_equal (seat_id, session_seat); ++ return g_strcmp0 (seat_id, session_seat) == 0; +} + +static char ** @@ -220,7 +220,7 @@ diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c index 051420ac8..4f68448e3 100644 --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c -@@ -2152,6 +2152,30 @@ on_session_reauthenticated (GdmSession *session, +@@ -2152,6 +2152,37 @@ on_session_reauthenticated (GdmSession *session, switch_to_compatible_user_session (manager, session, fail_if_already_switched); } @@ -241,8 +241,15 @@ index 051420ac8..4f68448e3 100644 + return; + } + -+ + for (i = 0; i < g_strv_length (session_ids); i++) { ++ // Don't kill conflicting session if it's not tracked, ++ // this ensures the new session isn't killed (because ++ // it's considered a conflicting session). ++ if (!gdm_display_store_find (manager->priv->display_store, ++ lookup_by_session_id, ++ (gpointer) session_ids[i])) ++ continue; ++ + if (!gdm_terminate_session_by_id (manager->priv->connection, NULL, session_ids[i])) + g_warning ("Failed to terminate conflicting session: %s", session_ids[i]); + } diff --git a/gdm.spec b/gdm.spec index c2af1c4..0696d9c 100644 --- a/gdm.spec +++ b/gdm.spec @@ -11,7 +11,7 @@ Name: gdm Epoch: 1 Version: 40.1 -Release: 37%{?dist} +Release: 38%{?dist} Summary: The GNOME Display Manager License: GPLv2+ @@ -373,6 +373,10 @@ dconf update || : %{_libdir}/pkgconfig/gdm-pam-extensions.pc %changelog +* Thu Oct 2 2025 Joan Torres Lopez - 40.1-38 +- Fix issue on conflicting sessions when they are remote + Resolves: RHEL-123357 + * Thu Aug 21 2025 Joan Torres Lopez - 40.1-37 - Fix precedence order when loading sessions Resolves: RHEL-4133