[gtk+] Fix a sporadic segfault in treeview keynav
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Fix a sporadic segfault in treeview keynav
- Date: Tue, 10 Aug 2010 04:34:47 +0000 (UTC)
commit fb48e023d2959b5596eae54728c689264ffabdbd
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Aug 10 00:31:46 2010 -0400
Fix a sporadic segfault in treeview keynav
If a a treeview has frequent periodic additions and removals of
rows, it is possible that a page down keypress moves the cursor
out of the height of the treeview. In some of these cases, we
can be tricked into dereferencing a NULL pointer.
Bug 612919.
gtk/gtktreeview.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 444a81a..7bbb4e4 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -9822,6 +9822,13 @@ gtk_tree_view_move_cursor_page_up_down (GtkTreeView *tree_view,
_gtk_rbtree_find_offset (tree_view->priv->tree, y,
&cursor_tree, &cursor_node);
+ if (cursor_tree == NULL)
+ {
+ /* FIXME: we lost the cursor. Should we try to get one? */
+ gtk_tree_path_free (old_cursor_path);
+ return;
+ }
+
if (tree_view->priv->cursor_offset > BACKGROUND_HEIGHT (cursor_node))
{
_gtk_rbtree_next_full (cursor_tree, cursor_node,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]