diff options
author | Matthias Clasen <mclasen@redhat.com> | 2015-07-08 14:39:34 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-07-08 14:39:34 -0400 |
commit | b2daadd08d674b19196f8aa5d7a9917bf7e26e5f (patch) | |
tree | bfcc4f27c38a0c653dd33945b991f6708a53d7de | |
parent | 02ff6705220a984d5382518033a4627eed710f2f (diff) | |
download | gnome-initial-setup-b2daadd08d674b19196f8aa5d7a9917bf7e26e5f.tar.gz |
network: Avoid a crash on locale change
We were not careful enough in managing our timeout. Sometimes,
an old timeout could stick around, and then access disposed
objects later on, leading to crash.
https://bugzilla.gnome.org/show_bug.cgi?id=752134
-rw-r--r-- | gnome-initial-setup/pages/network/gis-network-page.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gnome-initial-setup/pages/network/gis-network-page.c b/gnome-initial-setup/pages/network/gis-network-page.c index 168be4e..d0c2b96 100644 --- a/gnome-initial-setup/pages/network/gis-network-page.c +++ b/gnome-initial-setup/pages/network/gis-network-page.c @@ -326,10 +326,8 @@ refresh_again (gpointer user_data) GisNetworkPage *page = GIS_NETWORK_PAGE (user_data); GisNetworkPagePrivate *priv = gis_network_page_get_instance_private (page); - priv->refresh_timeout_id = 0; - refresh_wireless_list (page); - return FALSE; + return G_SOURCE_REMOVE; } static void @@ -347,6 +345,12 @@ refresh_wireless_list (GisNetworkPage *page) g_assert (NM_IS_DEVICE_WIFI (priv->nm_device)); + if (priv->refresh_timeout_id != 0) + { + g_source_remove (priv->refresh_timeout_id); + priv->refresh_timeout_id = 0; + } + active_ap = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (priv->nm_device)); children = gtk_container_get_children (GTK_CONTAINER (priv->network_list)); |