From 99497a7674928df103c50a83b8f0cf7372fa92c2 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 22 Jan 2019 13:24:25 +0100 Subject: [PATCH] clients/secret-agent: sink reference for variant passed to callback NMSecretAgentOld's get_secrets_cb() gets this right and takes a floating reference. So this was correct. However, make this a bit more robust, and don't pass on floating references. This was, we don't require the callee to consume the reference. --- clients/common/nm-secret-agent-simple.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clients/common/nm-secret-agent-simple.c b/clients/common/nm-secret-agent-simple.c index 30545d9c64..184f89e274 100644 --- a/clients/common/nm-secret-agent-simple.c +++ b/clients/common/nm-secret-agent-simple.c @@ -961,7 +961,7 @@ nm_secret_agent_simple_response (NMSecretAgentSimple *self, { NMSecretAgentSimplePrivate *priv; RequestData *request; - GVariant *dict = NULL; + gs_unref_variant GVariant *secrets_dict = NULL; gs_free_error GError *error = NULL; int i; @@ -1018,14 +1018,14 @@ nm_secret_agent_simple_response (NMSecretAgentSimple *self, g_hash_table_iter_init (&iter, settings); while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer *) &setting_builder)) g_variant_builder_add (&conn_builder, "{sa{sv}}", name, setting_builder); - dict = g_variant_builder_end (&conn_builder); + secrets_dict = g_variant_ref_sink (g_variant_builder_end (&conn_builder)); g_hash_table_destroy (settings); } else { error = g_error_new (NM_SECRET_AGENT_ERROR, NM_SECRET_AGENT_ERROR_USER_CANCELED, "User cancelled"); } - _request_data_complete (request, dict, error, NULL); + _request_data_complete (request, secrets_dict, error, NULL); } static void