diff options
author | Germán Poo-Caamaño <[email protected]> | 2013-05-30 18:05:36 -0700 |
---|---|---|
committer | raveit65 <[email protected]> | 2018-03-22 08:44:47 +0100 |
commit | aa3bcfa7315593044de3a0462eabd1bf1d23df4b (patch) | |
tree | 211ae2cb0c1e76c61b14f23bd289300d7e81b00a | |
parent | 63463849638784e91339acfc27b4b0645b8573f3 (diff) | |
download | atril-aa3bcfa7315593044de3a0462eabd1bf1d23df4b.tar.bz2 atril-aa3bcfa7315593044de3a0462eabd1bf1d23df4b.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
-rw-r--r-- | libview/ev-view.c | 7 |
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); } |