From 1ee7ed2a1f0b6a6aad7108c6828c0d61ba3d3530 Mon Sep 17 00:00:00 2001 From: Andy Holmes Date: Mon, 18 Nov 2024 14:01:50 -0800 Subject: [PATCH] goafedoraprovider: fix use-after-free Fix two arguments swapped in a signal disconnection, resulting in a use-after-free error. closes #386 --- src/goabackend/goafedoraprovider.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/goabackend/goafedoraprovider.c b/src/goabackend/goafedoraprovider.c index 479274a8..3a38bfff 100644 --- a/src/goabackend/goafedoraprovider.c +++ b/src/goabackend/goafedoraprovider.c @@ -204,6 +204,7 @@ client_account_added_cb (GoaClient *client, GoaObject *object, gpointer user_dat g_return_if_fail (data->object == NULL); data->object = g_object_ref (object); + g_signal_handlers_disconnect_by_func (data->client, client_account_added_cb, task); } static void @@ -265,7 +266,7 @@ add_account_credentials (GTask *task) (GAsyncReadyCallback) add_account_credentials_cb, g_object_ref (task)); - g_signal_handlers_disconnect_by_func (data->client, task, client_account_added_cb); + g_signal_handlers_disconnect_by_func (data->client, client_account_added_cb, task); g_clear_pointer (&data->client_source, g_source_unref); return G_SOURCE_REMOVE; -- GitLab