Fix a crash in gnome-system-log

This commit is contained in:
Matthias Clasen 2007-10-22 13:34:17 +00:00
parent 1e8131a12b
commit 9ba48433a6
2 changed files with 54 additions and 1 deletions

View File

@ -16,7 +16,7 @@
Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
Name: gtk2
Version: %{base_version}
Release: 2%{?dist}
Release: 3%{?dist}
License: LGPLv2+
Group: System Environment/Libraries
Source: http://download.gnome.org/sources/gtk+/2.12/gtk+-%{version}.tar.bz2
@ -34,6 +34,9 @@ Patch2: workaround.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=482531
Patch3: firefox-print-preview.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=488119
Patch4: system-log-crash.patch
BuildRequires: atk-devel >= %{atk_version}
BuildRequires: pango-devel >= %{pango_version}
BuildRequires: glib2-devel >= %{glib2_version}
@ -111,6 +114,7 @@ docs for the GTK+ widget toolkit.
%patch1 -p1 -b .set-invisible-char-to-bullet
%patch2 -p1 -b .workaround
%patch3 -p1 -b .firefox-print-preview
%patch4 -p1 -b .system-log-crash
for i in config.guess config.sub ; do
test -f %{_datadir}/libtool/$i && cp %{_datadir}/libtool/$i .
@ -293,6 +297,9 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/gtk-2.0
%changelog
* Mon Oct 22 2007 Matthias Clasen <mclasen@redhat.com> - 2.12.1-4
- Fix a crash in gnome-system-log (#321701)
* Wed Oct 17 2007 Matthias Clasen <mclasen@redhat.com> - 2.12.1-2
- Fix a crash in the firefox print preview (#336771)

46
system-log-crash.patch Normal file
View File

@ -0,0 +1,46 @@
diff -up gtk+-2.12.1/gtk/gtktreeview.c.system-log gtk+-2.12.1/gtk/gtktreeview.c
--- gtk+-2.12.1/gtk/gtktreeview.c.system-log 2007-10-18 21:51:23.000000000 -0400
+++ gtk+-2.12.1/gtk/gtktreeview.c 2007-10-18 21:53:18.000000000 -0400
@@ -13276,18 +13276,24 @@ gtk_tree_view_get_visible_range (GtkTree
{
GtkRBTree *tree;
GtkRBNode *node;
-
+ gboolean retval;
+
g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), FALSE);
if (!tree_view->priv->tree)
return FALSE;
+ retval = TRUE;
+
if (start_path)
{
_gtk_rbtree_find_offset (tree_view->priv->tree,
TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, 0),
&tree, &node);
- *start_path = _gtk_tree_view_find_path (tree_view, tree, node);
+ if (tree)
+ *start_path = _gtk_tree_view_find_path (tree_view, tree, node);
+ else
+ retval = FALSE;
}
if (end_path)
@@ -13300,10 +13306,13 @@ gtk_tree_view_get_visible_range (GtkTree
y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, tree_view->priv->vadjustment->page_size) - 1;
_gtk_rbtree_find_offset (tree_view->priv->tree, y, &tree, &node);
- *end_path = _gtk_tree_view_find_path (tree_view, tree, node);
+ if (tree)
+ *end_path = _gtk_tree_view_find_path (tree_view, tree, node);
+ else
+ retval = FALSE;
}
- return TRUE;
+ return retval;
}
static void