summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-01-04 14:25:07 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2017-01-04 14:44:36 +0100
commit6b0de82dd52d0f9c7279a0dcae7d4b6a8e0cf5f0 (patch)
tree9d838a35add3c2bada6e2327e3345b1d0e433d88
parentec7d9f619d8dba09a0dd5c288dc8914ca6b94246 (diff)
downloadnetwork-manager-applet-6b0de82dd52d0f9c7279a0dcae7d4b6a8e0cf5f0.tar.gz
editor: fix bad memory access in wsec_size_group_clear()
Elements of the list returned by gtk_size_group_get_widgets() become invalid after the call to gtk_size_group_remove_widget().
-rw-r--r--src/connection-editor/page-wifi-security.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/connection-editor/page-wifi-security.c b/src/connection-editor/page-wifi-security.c
index 4b366ea4..b775aa93 100644
--- a/src/connection-editor/page-wifi-security.c
+++ b/src/connection-editor/page-wifi-security.c
@@ -107,14 +107,15 @@ stuff_changed_cb (WirelessSecurity *sec, gpointer user_data)
static void
wsec_size_group_clear (GtkSizeGroup *group)
{
- GSList *children;
GSList *iter;
g_return_if_fail (group != NULL);
- children = gtk_size_group_get_widgets (group);
- for (iter = children; iter; iter = g_slist_next (iter))
+ iter = gtk_size_group_get_widgets (group);
+ while (iter) {
gtk_size_group_remove_widget (group, GTK_WIDGET (iter->data));
+ iter = gtk_size_group_get_widgets (group);
+ }
}
static WirelessSecurity *