From 4631115647c1e4f0482ffe0491c2f38d2231337b Mon Sep 17 00:00:00 2001 From: crt Date: Fri, 29 Jul 2022 20:51:11 +0000 Subject: [PATCH] Check isDict before calling getDict Issue #1276 --- utils/pdfunite.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/utils/pdfunite.cc b/utils/pdfunite.cc index a8116e3..9735096 100644 --- a/utils/pdfunite.cc +++ b/utils/pdfunite.cc @@ -210,6 +210,14 @@ int main (int argc, char *argv[]) Object ocObj; if (docs.size() >= 1) { Object catObj = docs[0]->getXRef()->getCatalog(); + if(!catObj.isDict()){ + fclose(f); + delete yRef; + delete countRef; + delete outStr; + error(errSyntaxError, -1, "XRef's Catalog is not a dictionary."); + return -1; + } Dict *catDict = catObj.getDict(); intents = catDict->lookup("OutputIntents"); afObj = catDict->lookupNF("AcroForm").copy(); @@ -310,6 +318,14 @@ int main (int argc, char *argv[]) } } Object pageCatObj = docs[i]->getXRef()->getCatalog(); + if(!pageCatObj.isDict()){ + fclose(f); + delete yRef; + delete countRef; + delete outStr; + error(errSyntaxError, -1, "XRef's Catalog is not a dictionary."); + return -1; + } Dict *pageCatDict = pageCatObj.getDict(); Object pageNames = pageCatDict->lookup("Names"); if (!pageNames.isNull() && pageNames.isDict()) { -- 2.33.0