diff options
author | Thomas Haller <thaller@redhat.com> | 2015-09-02 17:10:58 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-09-02 17:20:11 +0200 |
commit | 158b32b7e009bc0a5615f188c6f72adcb0d99696 (patch) | |
tree | c1cc5713e639493a826bb2e44becc364403f5255 /src/settings/nm-settings-connection.c | |
parent | 71c8c2e5872d2c6b15e24d37d3c000c11d0eba07 (diff) | |
download | NetworkManager-158b32b7e009bc0a5615f188c6f72adcb0d99696.tar.gz |
settings: fix memleak in agent_secrets_done_cb()
Fixes: df6706813a698e7a697739b0940bd8f528713aab
Diffstat (limited to 'src/settings/nm-settings-connection.c')
-rw-r--r-- | src/settings/nm-settings-connection.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index 62574eec2b..8e0c2a7276 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -138,6 +138,8 @@ typedef struct { typedef gboolean (*ForEachSecretFunc) (NMSettingSecretFlags flags, gpointer user_data); +/* Returns always a non-NULL, non-floating variant that must + * be unrefed by the caller. */ static GVariant * for_each_secret (NMConnection *self, GVariant *secrets, @@ -224,7 +226,7 @@ for_each_secret (NMConnection *self, g_variant_builder_add (&secrets_builder, "{sa{sv}}", setting_name, &setting_builder); } - return g_variant_builder_end (&secrets_builder); + return g_variant_ref_sink (g_variant_builder_end (&secrets_builder)); } typedef gboolean (*FindSecretFunc) (NMSettingSecretFlags flags, @@ -923,7 +925,6 @@ agent_secrets_done_cb (NMAgentManager *manager, call_id); } - g_variant_unref (filtered_secrets); } else { _LOGD ("(%s:%u) failed to update with agent secrets: (%d) %s", setting_name, @@ -931,6 +932,7 @@ agent_secrets_done_cb (NMAgentManager *manager, local ? local->code : -1, (local && local->message) ? local->message : "(unknown)"); } + g_variant_unref (filtered_secrets); } else { _LOGD ("(%s:%u) failed to update with existing secrets: (%d) %s", setting_name, |