summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-05-05 12:19:20 +0200
committerThomas Haller <thaller@redhat.com>2016-05-05 12:19:20 +0200
commit0175056a6d70bafdaf1042eb8f5e1ef57484a3f2 (patch)
treebee82f0f8556f645e878c1fd40a522b886ff998c
parent73cec4e9122dc364a15bab31971449f3aa07cb78 (diff)
downloadNetworkManager-0175056a6d70bafdaf1042eb8f5e1ef57484a3f2.tar.gz
device: disconnect platform signal handlers first in dispose
Once we start with dispose, we certainly don't want to process any platform events for the device anymore. Previously, we disconnect those handlers only later during dispose, so it's not clear that we would not receive a device_ipx_changed signal after _cleanup_generic_pre(). Fix this possible (or actual) bug.
-rw-r--r--src/devices/nm-device.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index a6de2fe258..bf4b92db86 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -11368,6 +11368,10 @@ dispose (GObject *object)
_LOGD (LOGD_DEVICE, "disposing");
+ platform = nm_platform_get ();
+ g_signal_handlers_disconnect_by_func (platform, G_CALLBACK (device_ipx_changed), self);
+ g_signal_handlers_disconnect_by_func (platform, G_CALLBACK (link_changed_cb), self);
+
g_slist_free_full (priv->arping.dad_list, (GDestroyNotify) nm_arping_manager_destroy);
priv->arping.dad_list = NULL;
@@ -11408,10 +11412,6 @@ dispose (GObject *object)
_clear_queued_act_request (priv);
- platform = nm_platform_get ();
- g_signal_handlers_disconnect_by_func (platform, G_CALLBACK (device_ipx_changed), self);
- g_signal_handlers_disconnect_by_func (platform, G_CALLBACK (link_changed_cb), self);
-
nm_clear_g_source (&priv->device_link_changed_id);
nm_clear_g_source (&priv->device_ip_link_changed_id);