File poppler-CVE-2022-37050.patch of Package poppler.31743
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-0.24.4/poppler/PDFDoc.cc
===================================================================
--- poppler-0.24.4.orig/poppler/PDFDoc.cc
+++ poppler-0.24.4/poppler/PDFDoc.cc
@@ -679,6 +679,14 @@ int PDFDoc::savePageAs(GooString *name,
// get and mark output intents etc.
Object catObj, pagesObj, resourcesObj;
getXRef()->getCatalog(&catObj);
+ 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();
catDict->lookup("Pages", &pagesObj);
Dict *pagesDict = pagesObj.getDict();