diff options
author | Thomas Haller <thaller@redhat.com> | 2015-01-28 22:56:34 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-01-29 14:59:42 +0100 |
commit | 6519c2be0a4ca839792babf0d1c9bd3b5876f41a (patch) | |
tree | 78830ef09233c515d1af2edb51b95c66feb10f7b | |
parent | d1a02290837f0e9666b4a27db211afc30a868ecd (diff) | |
download | NetworkManager-6519c2be0a4ca839792babf0d1c9bd3b5876f41a.tar.gz |
config: fix memleak in read_config()
-rw-r--r-- | src/nm-config.c | 7 |
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; |