summaryrefslogtreecommitdiff
path: root/libview
diff options
context:
space:
mode:
authorGermán Poo-Caamaño <[email protected]>2013-05-30 18:05:36 -0700
committerraveit65 <[email protected]>2018-03-22 08:27:44 +0100
commit9fc78897eff42414ea25ce52cf8585015c980c16 (patch)
tree2ff4427f8cbbd95a60150748e008c4adf8da646d /libview
parenta04ab7f1b28fd3e3f767baaa69b0c4eb06a0825a (diff)
downloadatril-9fc78897eff42414ea25ce52cf8585015c980c16.tar.bz2
atril-9fc78897eff42414ea25ce52cf8585015c980c16.tar.xz
libview: Check number of pages on ev_view_document_changed_cb
Fix crash on corrupted PDF with no pages. Thanks to Juha Kylmänen from OUSPG who were testing robutness. (CVE-2013-3718). libview: Fix warning on ev_view_document_changed_cb There was an introduction of a warning when fixing the bug https://bugzilla.gnome.org/show_bug.cgi?id=701302 If ev_view_document_changed_cb () is emitted when there is no previous document, the check fails. This patch change the order of the condition checks. origin commits: https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=62b1585 https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=5431595
Diffstat (limited to 'libview')
-rw-r--r--libview/ev-view.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libview/ev-view.c b/libview/ev-view.c
index a2f368d8..8c7c8520 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -6769,12 +6769,15 @@ ev_view_document_changed_cb (EvDocumentModel *model,
g_object_unref (view->document);
}
- view->document = document;
+ view->document = document ? g_object_ref (document) : NULL;
view->find_result = 0;
if (view->document) {
+ if (ev_document_get_n_pages (view->document) <= 0 ||
+ !ev_document_check_dimensions (view->document))
+ return;
+
ev_view_set_loading (view, FALSE);
- g_object_ref (view->document);
setup_caches (view);
}