From ce05f19c6812d4fde80bdb0d41f2b6973967a451 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 5 May 2016 12:19:20 +0200 Subject: [PATCH] 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. (cherry picked from commit 0175056a6d70bafdaf1042eb8f5e1ef57484a3f2) --- 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 a0cb89b424..242af8dca1 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -11236,6 +11236,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; @@ -11276,10 +11280,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);