summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-01-22 13:24:25 +0100
committerThomas Haller <thaller@redhat.com>2019-02-05 08:31:44 +0100
commit99497a7674928df103c50a83b8f0cf7372fa92c2 (patch)
tree9fa6c5bb7add736002a4647aff52905a921068f2
parentc9ca1186c2b6d06f1b03415de96d21e619df7cd6 (diff)
downloadNetworkManager-99497a7674928df103c50a83b8f0cf7372fa92c2.tar.gz
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.
-rw-r--r--clients/common/nm-secret-agent-simple.c6
1 files 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