Fix leak on new connections
Resolves: RHEL-5703
This commit is contained in:
parent
0e7e69f72c
commit
33999c83bc
96
0001-session-Fix-memory-leak-on-new-outside-connection.patch
Normal file
96
0001-session-Fix-memory-leak-on-new-outside-connection.patch
Normal file
@ -0,0 +1,96 @@
|
||||
From 3d67dc8e992b69c331b403b5ff7f680700392977 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Joan=20Torres=20L=C3=B3pez?= <joantolo@redhat.com>
|
||||
Date: Wed, 11 Jun 2025 17:54:52 +0200
|
||||
Subject: [PATCH] session: Fix memory leak on new outside connection
|
||||
|
||||
On a new outside connection some new dbus interfaces are created and
|
||||
assigned as properties to session. However the assignation wasn't
|
||||
considering the previous reference of these interfaces, leading to a
|
||||
memory leak.
|
||||
|
||||
Use g_set_object to fix it.
|
||||
---
|
||||
daemon/gdm-session.c | 19 +++++++++----------
|
||||
1 file changed, 9 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
|
||||
index 33dee7606..08ba39cf6 100644
|
||||
--- a/daemon/gdm-session.c
|
||||
+++ b/daemon/gdm-session.c
|
||||
@@ -1840,7 +1840,8 @@ static void
|
||||
export_user_verifier_interface (GdmSession *self,
|
||||
GDBusConnection *connection)
|
||||
{
|
||||
- GdmDBusUserVerifier *user_verifier_interface;
|
||||
+ g_autoptr (GdmDBusUserVerifier) user_verifier_interface = NULL;
|
||||
+
|
||||
user_verifier_interface = GDM_DBUS_USER_VERIFIER (gdm_dbus_user_verifier_skeleton_new ());
|
||||
|
||||
g_object_set_data (G_OBJECT (connection), "gdm-session", self);
|
||||
@@ -1871,14 +1872,14 @@ export_user_verifier_interface (GdmSession *self,
|
||||
GDM_SESSION_DBUS_OBJECT_PATH,
|
||||
NULL);
|
||||
|
||||
- self->user_verifier_interface = user_verifier_interface;
|
||||
+ g_set_object (&self->user_verifier_interface, user_verifier_interface);
|
||||
}
|
||||
|
||||
static void
|
||||
export_greeter_interface (GdmSession *self,
|
||||
GDBusConnection *connection)
|
||||
{
|
||||
- GdmDBusGreeter *greeter_interface;
|
||||
+ g_autoptr (GdmDBusGreeter) greeter_interface = NULL;
|
||||
|
||||
greeter_interface = GDM_DBUS_GREETER (gdm_dbus_greeter_skeleton_new ());
|
||||
|
||||
@@ -1912,8 +1913,7 @@ export_greeter_interface (GdmSession *self,
|
||||
GDM_SESSION_DBUS_OBJECT_PATH,
|
||||
NULL);
|
||||
|
||||
- self->greeter_interface = greeter_interface;
|
||||
-
|
||||
+ g_set_object (&self->greeter_interface, greeter_interface);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -1931,7 +1931,7 @@ static void
|
||||
export_remote_greeter_interface (GdmSession *self,
|
||||
GDBusConnection *connection)
|
||||
{
|
||||
- GdmDBusRemoteGreeter *remote_greeter_interface;
|
||||
+ g_autoptr (GdmDBusRemoteGreeter) remote_greeter_interface = NULL;
|
||||
|
||||
remote_greeter_interface = GDM_DBUS_REMOTE_GREETER (gdm_dbus_remote_greeter_skeleton_new ());
|
||||
|
||||
@@ -1945,8 +1945,7 @@ export_remote_greeter_interface (GdmSession *self,
|
||||
GDM_SESSION_DBUS_OBJECT_PATH,
|
||||
NULL);
|
||||
|
||||
- self->remote_greeter_interface = remote_greeter_interface;
|
||||
-
|
||||
+ g_set_object (&self->remote_greeter_interface, remote_greeter_interface);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -1966,7 +1965,7 @@ static void
|
||||
export_chooser_interface (GdmSession *self,
|
||||
GDBusConnection *connection)
|
||||
{
|
||||
- GdmDBusChooser *chooser_interface;
|
||||
+ g_autoptr (GdmDBusChooser) chooser_interface = NULL;
|
||||
|
||||
chooser_interface = GDM_DBUS_CHOOSER (gdm_dbus_chooser_skeleton_new ());
|
||||
|
||||
@@ -1980,7 +1979,7 @@ export_chooser_interface (GdmSession *self,
|
||||
GDM_SESSION_DBUS_OBJECT_PATH,
|
||||
NULL);
|
||||
|
||||
- self->chooser_interface = chooser_interface;
|
||||
+ g_set_object (&self->chooser_interface, chooser_interface);
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.49.0
|
||||
|
4
gdm.spec
4
gdm.spec
@ -34,6 +34,10 @@ Patch: 0001-schema-Add-banner-message-path-and-source-settings.patch
|
||||
# https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/284
|
||||
Patch: 0001-meson-Define-missing-HAVE_LIBAUDIT.patch
|
||||
|
||||
# RHEL-5703
|
||||
# https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/298
|
||||
Patch: 0001-session-Fix-memory-leak-on-new-outside-connection.patch
|
||||
|
||||
BuildRequires: dconf
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: gettext-devel
|
||||
|
Loading…
Reference in New Issue
Block a user