diff options
author | Thomas Haller <thaller@redhat.com> | 2016-05-05 12:19:20 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2016-05-05 12:19:20 +0200 |
commit | 0175056a6d70bafdaf1042eb8f5e1ef57484a3f2 (patch) | |
tree | bee82f0f8556f645e878c1fd40a522b886ff998c | |
parent | 73cec4e9122dc364a15bab31971449f3aa07cb78 (diff) | |
download | NetworkManager-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.c | 8 |
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); |