summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-02-11 19:41:10 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-02-11 19:41:10 +0000
commit9f10f9a5956b554daf4449e93620f7145bb8f941 (patch)
tree5279b3540f92a43283ec8cb28eafad040ef1d4bc
parent560e27a3f4fb0e043f51c995141bab11414bd118 (diff)
parent95d48ac2e81df1f382669e4795cc3a9de151a252 (diff)
downloadgtk+-9f10f9a5956b554daf4449e93620f7145bb8f941.tar.gz
Merge branch 'fix-network-places' into 'master'
placesview: Avoid use-after-free See merge request GNOME/gtk!3186
-rw-r--r--gtk/gtkplacesview.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/gtk/gtkplacesview.c b/gtk/gtkplacesview.c
index aec0ddea60..4d26337155 100644
--- a/gtk/gtkplacesview.c
+++ b/gtk/gtkplacesview.c
@@ -986,9 +986,14 @@ network_enumeration_next_files_finished (GObject *source_object,
if (error)
{
- if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
- g_warning ("Failed to fetch network locations: %s", error->message);
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ {
+ g_clear_error (&error);
+ g_object_unref (view);
+ return;
+ }
+ g_warning ("Failed to fetch network locations: %s", error->message);
g_clear_error (&error);
}
else
@@ -999,16 +1004,11 @@ network_enumeration_next_files_finished (GObject *source_object,
g_list_free_full (detected_networks, g_object_unref);
}
- g_object_unref (view);
+ update_network_state (view);
+ monitor_network (view);
+ update_loading (view);
- /* avoid to update widgets if we are already destroyed
- (and got cancelled s a result of that) */
- if (!view->destroyed)
- {
- update_network_state (view);
- monitor_network (view);
- update_loading (view);
- }
+ g_object_unref (view);
}
static void