diff options
author | Thomas Haller <thaller@redhat.com> | 2019-01-22 13:24:25 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2019-02-05 08:31:44 +0100 |
commit | 99497a7674928df103c50a83b8f0cf7372fa92c2 (patch) | |
tree | 9fa6c5bb7add736002a4647aff52905a921068f2 | |
parent | c9ca1186c2b6d06f1b03415de96d21e619df7cd6 (diff) | |
download | NetworkManager-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.c | 6 |
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 |