summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2012-09-25 14:45:34 -0500
committerDan Williams <dcbw@redhat.com>2012-09-25 15:03:13 -0500
commit78e9c564b2c5ae9a554ecfef82a00e5d61b79267 (patch)
treead0219f4169c417b7e7d1faf6d38bfd500fbab1e
parent5d503fe43472be10ece2271b3451ee605cc0d3bc (diff)
keyfile: fix use-after-free in log messages
-rw-r--r--src/settings/plugins/keyfile/reader.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
index 91d7fd02..435bdb15 100644
--- a/src/settings/plugins/keyfile/reader.c
+++ b/src/settings/plugins/keyfile/reader.c
@@ -113,10 +113,11 @@ read_ip4_addresses (GKeyFile *file,
key_name = g_strdup_printf ("%s%d", key, i);
tmp = g_key_file_get_string_list (file, setting_name, key_name, &length, NULL);
- g_free (key_name);
- if (!tmp || !length)
+ if (!tmp || !length) {
+ g_free (key_name);
break; /* all done */
+ }
if ((length < 2) || (length > 3)) {
g_warning ("%s: ignoring invalid IPv4 address item '%s'", __func__, key_name);
@@ -157,6 +158,7 @@ read_ip4_addresses (GKeyFile *file,
g_ptr_array_add (addresses, address);
next:
+ g_free (key_name);
g_strfreev (tmp);
}