File poppler-CVE-2022-37050.patch of Package poppler.31255

From dcd5bd8238ea448addd102ff045badd0aca1b990 Mon Sep 17 00:00:00 2001
From: crt <chluo@cse.cuhk.edu.hk>
Date: Wed, 27 Jul 2022 08:40:02 +0000
Subject: [PATCH] pdfseparate: Check XRef's Catalog for being a Dict

---
 poppler/PDFDoc.cc | 4 ++++
 1 file changed, 4 insertions(+)

Index: poppler-22.01.0/poppler/PDFDoc.cc
===================================================================
--- poppler-22.01.0.orig/poppler/PDFDoc.cc
+++ poppler-22.01.0/poppler/PDFDoc.cc
@@ -924,6 +924,14 @@ int PDFDoc::savePageAs(const GooString *
 
     // get and mark output intents etc.
     Object catObj = getXRef()->getCatalog();
+    if (!catObj.isDict()) {
+        fclose(f);
+        delete yRef;
+        delete countRef;
+        delete outStr;        
+        error(errSyntaxError, -1, "XRef's Catelog is not a dictionary");
+        return errOpenFile;
+    }
     Dict *catDict = catObj.getDict();
     Object pagesObj = catDict->lookup("Pages");
     Object afObj = catDict->lookupNF("AcroForm").copy();
openSUSE Build Service is sponsored by