Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
poppler-qt
0001-pdfunite-Fix-crash-with-broken-documents.p...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-pdfunite-Fix-crash-with-broken-documents.patch of Package poppler-qt
From 5c9b08a875b07853be6c44e43ff5f7f059df666a Mon Sep 17 00:00:00 2001 From: Albert Astals Cid <aacid@kde.org> Date: Sat, 27 May 2017 00:09:17 +0200 Subject: [PATCH] pdfunite: Fix crash with broken documents Sometimes we can't parse pages so check before accessing them Thanks to Jiaqi Peng for the report Fixes bugs #101153 and #101149 --- utils/pdfunite.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) Index: poppler-0.43.0/utils/pdfunite.cc =================================================================== --- poppler-0.43.0.orig/utils/pdfunite.cc 2015-09-01 23:46:49.000000000 +0200 +++ poppler-0.43.0/utils/pdfunite.cc 2017-06-09 11:52:00.081277712 +0200 @@ -7,7 +7,7 @@ // Copyright (C) 2011-2015 Thomas Freitag <Thomas.Freitag@alfa.de> // Copyright (C) 2012 Arseny Solokha <asolokha@gmx.com> // Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it> -// Copyright (C) 2012, 2014 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2012, 2014, 2017 Albert Astals Cid <aacid@kde.org> // Copyright (C) 2013 Adrian Johnson <ajohnson@redneon.com> // Copyright (C) 2013 Hib Eris <hib@hiberis.nl> // Copyright (C) 2015 Arthur Stavisky <vovodroid@gmail.com> @@ -248,15 +248,15 @@ int main (int argc, char *argv[]) catDict->lookup("OutputIntents", &intents); catDict->lookupNF("AcroForm", &afObj); Ref *refPage = docs[0]->getCatalog()->getPageRef(1); - if (!afObj.isNull()) { + if (!afObj.isNull() && refPage) { docs[0]->markAcroForm(&afObj, yRef, countRef, 0, refPage->num, refPage->num); } catDict->lookupNF("OCProperties", &ocObj); - if (!ocObj.isNull() && ocObj.isDict()) { + if (!ocObj.isNull() && ocObj.isDict() && refPage) { docs[0]->markPageObjects(ocObj.getDict(), yRef, countRef, 0, refPage->num, refPage->num); } catDict->lookup("Names", &names); - if (!names.isNull() && names.isDict()) { + if (!names.isNull() && names.isDict() && refPage) { docs[0]->markPageObjects(names.getDict(), yRef, countRef, 0, refPage->num, refPage->num); } if (intents.isArray() && intents.arrayGetLength() > 0) { @@ -333,6 +333,10 @@ int main (int argc, char *argv[]) for (i = 0; i < (int) docs.size(); i++) { for (j = 1; j <= docs[i]->getNumPages(); j++) { + if (!docs[i]->getCatalog()->getPage(j)) { + continue; + } + PDFRectangle *cropBox = NULL; if (docs[i]->getCatalog()->getPage(j)->isCropped()) cropBox = docs[i]->getCatalog()->getPage(j)->getCropBox();
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor