summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2014-08-29 10:44:00 +0200
committerThomas Haller <thaller@redhat.com>2014-11-05 23:49:54 +0100
commitf99feba1123ee7082ab9e96a4b7b376160aa5edb (patch)
tree2bfa70c9e3bf5ca0a08f1f4b1d4e6e879c4e23d3
parent7bc3edf5864928c5902bec1c0d35fc915862d4ee (diff)
downloadNetworkManager-f99feba1123ee7082ab9e96a4b7b376160aa5edb.tar.gz
core: fix leak of lookup_addr in NMPolicy
Also, as we now evaluate the arguments of logging statements lazily, refactor a logging statement. Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r--src/nm-policy.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/nm-policy.c b/src/nm-policy.c
index ddb85bd96b..c56fee58f1 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -473,12 +473,14 @@ update_system_hostname (NMPolicy *policy, NMDevice *best4, NMDevice *best6)
const NMPlatformIP4Address *addr4;
addr4 = nm_ip4_config_get_address (ip4_config, 0);
+ g_clear_object (&priv->lookup_addr);
priv->lookup_addr = g_inet_address_new_from_bytes ((guint8 *) &addr4->address,
G_SOCKET_FAMILY_IPV4);
} else if (ip6_config && nm_ip6_config_get_num_addresses (ip6_config) > 0) {
const NMPlatformIP6Address *addr6;
addr6 = nm_ip6_config_get_address (ip6_config, 0);
+ g_clear_object (&priv->lookup_addr);
priv->lookup_addr = g_inet_address_new_from_bytes ((guint8 *) &addr6->address,
G_SOCKET_FAMILY_IPV6);
} else {
@@ -1959,9 +1961,10 @@ dns_config_changed (NMDnsManager *dns_manager, gpointer user_data)
/* Re-start the hostname lookup thread if we don't have hostname yet. */
if (priv->lookup_addr) {
- char *str = g_inet_address_to_string (priv->lookup_addr);
+ char *str = NULL;
- nm_log_dbg (LOGD_DNS, "restarting reverse-lookup thread for address %s", str);
+ nm_log_dbg (LOGD_DNS, "restarting reverse-lookup thread for address %s",
+ (str = g_inet_address_to_string (priv->lookup_addr)));
g_free (str);
priv->lookup_cancellable = g_cancellable_new ();