GNOME Bugzilla – Bug 744586
Corrupted documents can crash evince
Last modified: 2015-10-19 08:38:41 UTC
Created attachment 296912 [details] [review] Check for failed rendering jobs I've got some downstream reports about crashes of evince on corrupted document files. See https://bugzilla.redhat.com/show_bug.cgi?id=1190174, https://bugzilla.redhat.com/show_bug.cgi?id=1187182 and https://bugzilla.redhat.com/show_bug.cgi?id=1175915. These crashes happens because of a wrong PostScript file. It loads but it doesn't render correctly. Evince then crashes because of unhandled checks for failed rendering jobs of sidebar thumbnails, recent view thumbnails and the document itself. There is a good reproducer described here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=767234. Attached patch fixes these crashes for me. Although evince still shows that the document is still loading (this happens because of draw_one_page() calls "ev_view_set_loading (view, TRUE)" if "!page_surface" which satisfies also the case when the rendering failed not just when the document is still loading).
This is the other patch we have in Fedora.
I reviewed this patch in bug #744049, feel free to push anyway.
https://git.gnome.org/browse/evince/commit/?id=f93a84c015a53f6fa89f2af04ad004631d8b7442
Maybe we should wait until a gnome-3-18 branch is created so we don't push new translatable strings into stable releases.
(In reply to Marek Kašík from comment #4) > Maybe we should wait until a gnome-3-18 branch is created so we don't push > new translatable strings into stable releases. Indeed, I haven't branched yet.
Actually, those translatable strings are messages that never reach the UI nor even stdout/stderr, it's an internal error, so I think we can just keep those strings in English.
Ah, never mind, those could be used by libview users. . . Another reason to use a better Quark
I've just created the gnome-3-18 branch right before this commit.
(In reply to Carlos Garcia Campos from comment #8) > I've just created the gnome-3-18 branch right before this commit. Thank you for fixing this.