Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
poppler-qt
poppler-CVE-2018-20662.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File poppler-CVE-2018-20662.patch of Package poppler-qt
Index: poppler-0.43.0/utils/pdfunite.cc =================================================================== --- poppler-0.43.0.orig/utils/pdfunite.cc +++ poppler-0.43.0/utils/pdfunite.cc @@ -206,7 +206,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(); @@ -217,8 +220,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