summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJonas Dreßler <verdre@v0yd.nl>2022-02-15 13:29:19 +0100
committerBastien Nocera <hadess@hadess.net>2022-02-16 11:36:02 +0000
commitbad63cd298cea19344dc34d4dcc02167eede10d6 (patch)
tree83792593eedf69ade32c820adf5811328bfc845c /lib
parenta3766b3e781e97792d1e0e0201092cfc89e46dbe (diff)
downloadgnome-bluetooth-bad63cd298cea19344dc34d4dcc02167eede10d6.tar.gz
lib: Fix possible crash when UPower updates
Due to a reference leak, libupower-glib could still callback into our BluetoothClient even if it was already finalized as the signal handlers were not forcibly disconnected when the BluetoothClient was. See https://gitlab.freedesktop.org/upower/upower/-/merge_requests/112 Fixes: 983838f1
Diffstat (limited to 'lib')
-rw-r--r--lib/bluetooth-client.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/bluetooth-client.c b/lib/bluetooth-client.c
index b5de998f..54ecc40d 100644
--- a/lib/bluetooth-client.c
+++ b/lib/bluetooth-client.c
@@ -1000,10 +1000,10 @@ up_client_new_cb (GObject *source_object,
g_debug ("Successfully created UpClient");
client = user_data;
client->up_client = up_client;
- g_signal_connect (G_OBJECT (up_client), "device-added",
- G_CALLBACK (up_device_added_cb), client);
- g_signal_connect (G_OBJECT (up_client), "device-removed",
- G_CALLBACK (up_device_removed_cb), client);
+ g_signal_connect_object (G_OBJECT (up_client), "device-added",
+ G_CALLBACK (up_device_added_cb), client, 0);
+ g_signal_connect_object (G_OBJECT (up_client), "device-removed",
+ G_CALLBACK (up_device_removed_cb), client, 0);
up_client_get_devices_async (up_client, client->cancellable,
up_client_get_devices_cb, client);
}