summaryrefslogtreecommitdiff
path: root/src/settings/nm-settings-connection.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-09-02 17:10:58 +0200
committerThomas Haller <thaller@redhat.com>2015-09-02 17:20:11 +0200
commit158b32b7e009bc0a5615f188c6f72adcb0d99696 (patch)
treec1cc5713e639493a826bb2e44becc364403f5255 /src/settings/nm-settings-connection.c
parent71c8c2e5872d2c6b15e24d37d3c000c11d0eba07 (diff)
downloadNetworkManager-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.c6
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,