summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-01-28 22:56:34 +0100
committerThomas Haller <thaller@redhat.com>2015-01-29 14:59:42 +0100
commit6519c2be0a4ca839792babf0d1c9bd3b5876f41a (patch)
tree78830ef09233c515d1af2edb51b95c66feb10f7b
parentd1a02290837f0e9666b4a27db211afc30a868ecd (diff)
downloadNetworkManager-6519c2be0a4ca839792babf0d1c9bd3b5876f41a.tar.gz
config: fix memleak in read_config()
-rw-r--r--src/nm-config.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nm-config.c b/src/nm-config.c
index e8cb086493..fa9a894429 100644
--- a/src/nm-config.c
+++ b/src/nm-config.c
@@ -403,6 +403,8 @@ read_config (NMConfig *config, const char *path, GError **error)
continue;
for (k = 0; keys[k]; k++) {
int len = strlen (keys[k]);
+ char *v;
+
if (keys[k][len - 1] == '+') {
char *base_key = g_strndup (keys[k], len - 1);
const char *old_val = g_key_file_get_value (priv->keyfile, groups[g], base_key, NULL);
@@ -421,9 +423,12 @@ read_config (NMConfig *config, const char *path, GError **error)
}
g_key_file_set_value (priv->keyfile, groups[g], keys[k],
- g_key_file_get_value (kf, groups[g], keys[k], NULL));
+ v = g_key_file_get_value (kf, groups[g], keys[k], NULL));
+ g_free (v);
}
+ g_strfreev (keys);
}
+ g_strfreev (groups);
g_key_file_free (kf);
return TRUE;