summaryrefslogtreecommitdiff
path: root/backport-CVE-2022-37050.patch
blob: 599ffbe5ae11f3d974b4d0b9c67f2ec96d882746 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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