about summary refs log tree commit diff
path: root/src/dhcp-manager/nm-dhcp-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dhcp-manager/nm-dhcp-client.c')
-rw-r--r--src/dhcp-manager/nm-dhcp-client.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c
index f4e94a6e..980fcab8 100644
--- a/src/dhcp-manager/nm-dhcp-client.c
+++ b/src/dhcp-manager/nm-dhcp-client.c
@@ -1533,16 +1533,26 @@ dispose (GObject *object)
 	 * the DHCP client.
 	 */
 
-	if (priv->remove_id)
+	if (priv->remove_id) {
 		g_source_remove (priv->remove_id);
+		priv->remove_id = 0;
+	}
+
+	if (priv->options) {
+		g_hash_table_destroy (priv->options);
+		priv->options = NULL;
+	}
+	g_clear_pointer (&priv->iface, g_free);
 
-	g_hash_table_destroy (priv->options);
-	g_free (priv->iface);
-	if (priv->hwaddr)
+	if (priv->hwaddr) {
 		g_byte_array_free (priv->hwaddr, TRUE);
+		priv->hwaddr = NULL;
+	}
 
-	if (priv->duid)
+	if (priv->duid) {
 		g_byte_array_free (priv->duid, TRUE);
+		priv->duid = NULL;
+	}
 
 	G_OBJECT_CLASS (nm_dhcp_client_parent_class)->dispose (object);
 }