Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Alexander_Naumov:SLE-12:Update
poppler.34111
poppler-CVE-2018-20662.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File poppler-CVE-2018-20662.patch of Package poppler.34111
Index: poppler-0.24.4/utils/pdfunite.cc =================================================================== --- poppler-0.24.4.orig/utils/pdfunite.cc +++ poppler-0.24.4/utils/pdfunite.cc @@ -78,7 +78,10 @@ int main (int argc, char *argv[]) for (i = 1; i < argc - 1; i++) { GooString *gfileName = new GooString(argv[i]); PDFDoc *doc = new PDFDoc(gfileName, NULL, NULL, NULL); - if (doc->isOk() && !doc->isEncrypted()) { + Object catObj; + doc->getXRef()->getCatalog(&catObj); + if (doc->isOk() && !doc->isEncrypted() && + catObj.isDict()) { docs.push_back(doc); if (doc->getPDFMajorVersion() > majorVersion) { majorVersion = doc->getPDFMajorVersion(); @@ -89,8 +92,15 @@ int main (int argc, char *argv[]) } } } else if (doc->isOk()) { - error(errUnimplemented, -1, "Could not merge encrypted files ('{0:s}')", argv[i]); - return -1; + Object catObj; + doc->getXRef()->getCatalog(&catObj); + if (doc->isEncrypted()) { + error(errUnimplemented, -1, "Could not merge encrypted files ('{0:s}')", argv[i]); + return -1; + } else if (!catObj.isDict()) { + error(errSyntaxError, -1, "XRef's Catalog is not a dictionary ('{0:s}')", argv[i]); + return -1; + } } else { error(errSyntaxError, -1, "Could not merge damaged documents ('{0:s}')", argv[i]); return -1;
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