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.
This commit is contained in:
Thomas Haller 2019-01-22 13:24:25 +01:00
parent c9ca1186c2
commit 99497a7674

View file

@ -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