diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-01-04 14:25:07 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-01-04 14:44:36 +0100 |
commit | 6b0de82dd52d0f9c7279a0dcae7d4b6a8e0cf5f0 (patch) | |
tree | 9d838a35add3c2bada6e2327e3345b1d0e433d88 | |
parent | ec7d9f619d8dba09a0dd5c288dc8914ca6b94246 (diff) | |
download | network-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.c | 7 |
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 * |