glib/poppler-action.cc |   21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

New commits:
commit 2cecdf922f4c8178b0e55d3ddf86c31f8be3313a
Author: Carlos Garcia Campos <[email protected]>
Date:   Tue Jun 9 11:04:39 2009 +0200

    [glib] Fix a crash when a destination points to an invalid page

diff --git a/glib/poppler-action.cc b/glib/poppler-action.cc
index 24e1651..f171245 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;
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to