summarylogtreecommitdiffstats
path: root/libview-crash.patch
blob: 65d07751fdd4a2ef547bcc8521d9bf81f7e90a15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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++) {