From 5998aa90c08051cc520dfb64ede78783ef9cc2c4 Mon Sep 17 00:00:00 2001 From: Jens Granseuer Date: Tue, 11 Aug 2009 16:01:55 +0000 Subject: Fix crash when iterating through the tree model Don't use indices to move through iterators, don't skip the first section, and verify that we got a new iterator before using it (bug #591392). --- diff --git a/capplets/keybindings/gnome-keybinding-properties.c b/capplets/keybindings/gnome-keybinding-properties.c index fb3ba35..5383298 100644 --- a/capplets/keybindings/gnome-keybinding-properties.c +++ b/capplets/keybindings/gnome-keybinding-properties.c @@ -522,25 +522,20 @@ find_section (GtkTreeModel *model, GtkTreeIter *iter, const char *title) { - gint i, j; - gboolean found; + gboolean success, found; - i = gtk_tree_model_iter_n_children (model, NULL); found = FALSE; - gtk_tree_model_get_iter_first (model, iter); - for (j = 0; j < i; j++) + success = gtk_tree_model_get_iter_first (model, iter); + while (success && !found) { char *description = NULL; - gtk_tree_model_iter_next (model, iter); gtk_tree_model_get (model, iter, DESCRIPTION_COLUMN, &description, -1); - if (g_strcmp0 (description, title) == 0) - { - found = TRUE; - break; - } + + found = (g_strcmp0 (description, title) == 0); + success = gtk_tree_model_iter_next (model, iter); } if (!found) { -- cgit v0.8.2