diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-06-09 11:04:39 +0200 |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-06-09 11:04:39 +0200 |
commit | 2cecdf922f4c8178b0e55d3ddf86c31f8be3313a (patch) | |
tree | 44934a8bb03fcf17a9926a1167a479d49f3d6745 /glib | |
parent | 831288c13c3a7502bbccd1313c6e376283be367c (diff) |
[glib] Fix a crash when a destination points to an invalid page
Diffstat (limited to 'glib')
-rw-r--r-- | glib/poppler-action.cc | 21 |
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; |