summaryrefslogtreecommitdiff
path: root/glib
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2009-06-09 11:04:39 +0200
committerCarlos Garcia Campos <carlosgc@gnome.org>2009-06-09 11:04:39 +0200
commit2cecdf922f4c8178b0e55d3ddf86c31f8be3313a (patch)
tree44934a8bb03fcf17a9926a1167a479d49f3d6745 /glib
parent831288c13c3a7502bbccd1313c6e376283be367c (diff)
[glib] Fix a crash when a destination points to an invalid page
Diffstat (limited to 'glib')
-rw-r--r--glib/poppler-action.cc21
1 files changed, 13 insertions, 8 deletions
diff --git a/glib/poppler-action.cc b/glib/poppler-action.cc
index 24e16516..f1712458 100644
--- a/glib/poppler-action.cc
+++ b/glib/poppler-action.cc
@@ -228,15 +228,20 @@ dest_new_goto (PopplerDocument *document,
if (document && dest->page_num > 0) {
PopplerPage *page;
-
+
page = poppler_document_get_page (document, dest->page_num - 1);
-
- dest->left -= page->page->getCropBox ()->x1;
- dest->bottom -= page->page->getCropBox ()->x1;
- dest->right -= page->page->getCropBox ()->y1;
- dest->top -= page->page->getCropBox ()->y1;
-
- g_object_unref (page);
+
+ if (page) {
+ dest->left -= page->page->getCropBox ()->x1;
+ dest->bottom -= page->page->getCropBox ()->x1;
+ dest->right -= page->page->getCropBox ()->y1;
+ dest->top -= page->page->getCropBox ()->y1;
+
+ g_object_unref (page);
+ } else {
+ g_warning ("Invalid page %d in Link Destination\n", dest->page_num);
+ dest->page_num = 0;
+ }
}
return dest;