From 0175056a6d70bafdaf1042eb8f5e1ef57484a3f2 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 5 May 2016 12:19:20 +0200 Subject: 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. --- src/devices/nm-device.c | 8 ++++---- 1 file 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); -- cgit v1.2.1