summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <halfline@gmail.com>2023-05-09 13:40:30 +0000
committerRay Strode <halfline@gmail.com>2023-05-09 13:40:30 +0000
commit7e16afc992d4703bc74f580f2d3a8e9df4bcb356 (patch)
tree9f85d7e8a167fdc369b5de3bfa073727f2c44abb
parent4489a20a1f437ba6f0c4415fb8a1e51d3cbba87a (diff)
parent95736e372a11d00f02054906e8286b6f35cf5cd3 (diff)
downloadgdm-7e16afc992d4703bc74f580f2d3a8e9df4bcb356.tar.gz
Merge branch 'wip/abono/session-settings-leak' into 'main'
gdm-session-settings: Plug a leak See merge request GNOME/gdm!204
-rw-r--r--daemon/gdm-session-settings.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/daemon/gdm-session-settings.c b/daemon/gdm-session-settings.c
index 8a09381c..87a4eb1d 100644
--- a/daemon/gdm-session-settings.c
+++ b/daemon/gdm-session-settings.c
@@ -338,12 +338,15 @@ gboolean
gdm_session_settings_load (GdmSessionSettings *settings,
const char *username)
{
+ g_autoptr(ActUser) old_user = NULL;
+
g_return_val_if_fail (GDM_IS_SESSION_SETTINGS (settings), FALSE);
g_return_val_if_fail (username != NULL, FALSE);
g_return_val_if_fail (!gdm_session_settings_is_loaded (settings), FALSE);
- if (settings->user != NULL) {
- g_signal_handlers_disconnect_by_func (G_OBJECT (settings->user),
+ old_user = g_steal_pointer (&settings->user);
+ if (old_user != NULL) {
+ g_signal_handlers_disconnect_by_func (G_OBJECT (old_user),
G_CALLBACK (on_user_is_loaded_changed),
settings);
}