summaryrefslogtreecommitdiff
path: root/backport-CVE-2022-37050.patch
diff options
context:
space:
mode:
Diffstat (limited to 'backport-CVE-2022-37050.patch')
-rw-r--r--backport-CVE-2022-37050.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/backport-CVE-2022-37050.patch b/backport-CVE-2022-37050.patch
new file mode 100644
index 0000000..599ffbe
--- /dev/null
+++ b/backport-CVE-2022-37050.patch
@@ -0,0 +1,26 @@
+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(+)
+
+diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
+index 6e4b0f4..43de80e 100644
+--- a/poppler/PDFDoc.cc
++++ b/poppler/PDFDoc.cc
+@@ -948,6 +948,10 @@ int PDFDoc::savePageAs(const GooString *name, int pageNo)
+
+ // get and mark output intents etc.
+ Object catObj = getXRef()->getCatalog();
++ if (!catObj.isDict()) {
++ 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();
+--
+2.33.0