slackbuilds_ponce/office/evince/patches/evince-2.32.0-libview-crash.patch
Erik Hanson 9ac6401366 office/evince: Added various patches to fix things.
No idea which patch(es) fixes the segfault,
  don't really care to find out.

Signed-off-by: Erik Hanson <erik@slackbuilds.org>
2011-05-17 09:54:03 -05:00

32 lines
1.3 KiB
Diff

commit a3b87cb28e46958b37e384a47604032ea0889807
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date: Sun Nov 21 12:27:21 2010 +0100
libview: Make sure we have a valid page range before getting/setting selection list
Fixes bug #630999.
diff --git a/libview/ev-pixbuf-cache.c b/libview/ev-pixbuf-cache.c
index 367f70d..ee68354 100644
--- a/libview/ev-pixbuf-cache.c
+++ b/libview/ev-pixbuf-cache.c
@@ -1035,6 +1035,9 @@ ev_pixbuf_cache_set_selection_list (EvPixbufCache *pixbuf_cache,
if (!EV_IS_SELECTION (pixbuf_cache->document))
return;
+ if (pixbuf_cache->start_page == -1 || pixbuf_cache->end_page == -1)
+ return;
+
/* We check each area to see what needs updating, and what needs freeing; */
page = pixbuf_cache->start_page - pixbuf_cache->preload_cache_size;
for (i = 0; i < pixbuf_cache->preload_cache_size; i++) {
@@ -1114,6 +1117,9 @@ ev_pixbuf_cache_get_selection_list (EvPixbufCache *pixbuf_cache)
g_return_val_if_fail (EV_IS_PIXBUF_CACHE (pixbuf_cache), NULL);
+ if (pixbuf_cache->start_page == -1 || pixbuf_cache->end_page == -1)
+ return NULL;
+
/* We check each area to see what needs updating, and what needs freeing; */
page = pixbuf_cache->start_page - pixbuf_cache->preload_cache_size;
for (i = 0; i < pixbuf_cache->preload_cache_size; i++) {