File poppler-CVE-2022-38349.patch of Package poppler.36856

Index: poppler-22.01.0/poppler/PDFDoc.cc
===================================================================
--- poppler-22.01.0.orig/poppler/PDFDoc.cc
+++ poppler-22.01.0/poppler/PDFDoc.cc
@@ -1747,6 +1747,9 @@ void PDFDoc::replacePageDict(int pageNo,
 {
     Ref *refPage = getCatalog()->getPageRef(pageNo);
     Object page = getXRef()->fetch(*refPage);
+    if (!page.isDict()) {
+      return;
+    }
     Dict *pageDict = page.getDict();
     pageDict->remove("MediaBoxssdf");
     pageDict->remove("MediaBox");
Index: poppler-22.01.0/utils/pdfunite.cc
===================================================================
--- poppler-22.01.0.orig/utils/pdfunite.cc
+++ poppler-22.01.0/utils/pdfunite.cc
@@ -289,6 +289,14 @@ int main(int argc, char *argv[])
             docs[i]->replacePageDict(j, docs[i]->getCatalog()->getPage(j)->getRotate(), docs[i]->getCatalog()->getPage(j)->getMediaBox(), cropBox);
             Ref *refPage = docs[i]->getCatalog()->getPageRef(j);
             Object page = docs[i]->getXRef()->fetch(*refPage);
+            if (!page.isDict()) {
+                fclose(f);
+                delete yRef;
+                delete countRef;
+                delete outStr;
+                error(errSyntaxError, -1, "PDFDoc::replacePageDict failed.");
+                return -1;
+            }
             Dict *pageDict = page.getDict();
             Object *resDict = docs[i]->getCatalog()->getPage(j)->getResourceDictObject();
             if (resDict->isDict()) {
openSUSE Build Service is sponsored by