diff options
author | Germán Poo-Caamaño <[email protected]> | 2013-05-30 18:05:36 -0700 |
---|---|---|
committer | monsta <[email protected]> | 2018-04-03 17:20:35 +0300 |
commit | 7bba877d2283a9bef1beba35e101a279b98b7db7 (patch) | |
tree | 7ab9e70f9d29db7ba3201053b7c9c96cbc511e6f | |
parent | 370cea480023260dfa0d2fe6b8d8ed93249264d9 (diff) | |
download | atril-7bba877d2283a9bef1beba35e101a279b98b7db7.tar.bz2 atril-7bba877d2283a9bef1beba35e101a279b98b7db7.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 e1b060cc..5fbf12ff 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -5232,12 +5232,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; + view->loading = FALSE; - g_object_ref (view->document); setup_caches (view); } |