Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
home:sbradnick
wireplumber
0004-module-dbus-connection-fix-GCancellable-le...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0004-module-dbus-connection-fix-GCancellable-leak.patch of Package wireplumber
From ed80938b8c6a08aeb22ec4cefdee6f98c2f8e646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com> Date: Thu, 26 Sep 2024 14:49:12 +0200 Subject: [PATCH] module-dbus-connection: fix GCancellable leak `wp_dbus_connection_disable()` creates a new GCancellable object at the end, which is never freed if the GObject is then destroyed. To fix this, override `finalize()` and clear everything there as well. Direct leak of 64 byte(s) in 1 object(s) allocated from: 0 0x70e688efd1aa in calloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:77 1 0x70e6874b3e62 in g_malloc0 (/usr/lib/libglib-2.0.so.0+0x63e62) (BuildId: 7b781c8d1a6e2161838c5d8f3bd797797c132753) 2 0x70e6875dea75 in g_type_create_instance (/usr/lib/libgobject-2.0.so.0+0x3ea75) (BuildId: 5af5e0f7d0a900ecb6083fbd71e22e5522d872e2) 3 0x70e6875c3804 (/usr/lib/libgobject-2.0.so.0+0x23804) (BuildId: 5af5e0f7d0a900ecb6083fbd71e22e5522d872e2) 4 0x70e6875c4e7e in g_object_new_with_properties (/usr/lib/libgobject-2.0.so.0+0x24e7e) (BuildId: 5af5e0f7d0a900ecb6083fbd71e22e5522d872e2) 5 0x70e6875c5ed1 in g_object_new (/usr/lib/libgobject-2.0.so.0+0x25ed1) (BuildId: 5af5e0f7d0a900ecb6083fbd71e22e5522d872e2) 6 0x70e684d2a8a6 in wp_dbus_connection_disable ../subprojects/wireplumber/modules/module-dbus-connection.c:173 7 0x70e688a833cc in wp_plugin_deactivate ../subprojects/wireplumber/lib/wp/plugin.c:144 8 0x70e688a7126c in wp_object_deactivate ../subprojects/wireplumber/lib/wp/object.c:542 9 0x70e688a6e74e in wp_object_dispose ../subprojects/wireplumber/lib/wp/object.c:191 10 0x70e6875c0f6c in g_object_unref (/usr/lib/libgobject-2.0.so.0+0x20f6c) (BuildId: 5af5e0f7d0a900ecb6083fbd71e22e5522d872e2) 11 0x70e6841f7d6d in wp_portal_permissionstore_plugin_disable ../subprojects/wireplumber/modules/module-portal-permissionstore.c:207 12 0x70e688a833cc in wp_plugin_deactivate ../subprojects/wireplumber/lib/wp/plugin.c:144 [...] --- modules/module-dbus-connection.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/module-dbus-connection.c b/modules/module-dbus-connection.c index 21ba95a20..b337be5e1 100644 --- a/modules/module-dbus-connection.c +++ b/modules/module-dbus-connection.c @@ -211,6 +211,19 @@ wp_dbus_connection_set_property (GObject * object, guint property_id, } } +static void +wp_dbus_connection_finalize (GObject * object) +{ + WpDBusConnection *self = WP_DBUS_CONNECTION (object); + + g_cancellable_cancel (self->cancellable); + + g_clear_object (&self->connection); + g_clear_object (&self->cancellable); + + G_OBJECT_CLASS (wp_dbus_connection_parent_class)->finalize (object); +} + static void wp_dbus_connection_class_init (WpDBusConnectionClass * klass) { @@ -219,6 +232,7 @@ wp_dbus_connection_class_init (WpDBusConnectionClass * klass) object_class->get_property = wp_dbus_connection_get_property; object_class->set_property = wp_dbus_connection_set_property; + object_class->finalize = wp_dbus_connection_finalize; plugin_class->enable = wp_dbus_connection_enable; plugin_class->disable = wp_dbus_connection_disable; -- GitLab
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor