You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2018/10/20 17:10:07 UTC

svn commit: r1844427 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java

Author: tilman
Date: Sat Oct 20 17:10:07 2018
New Revision: 1844427

URL: http://svn.apache.org/viewvc?rev=1844427&view=rev
Log:
PDFBOX-4357: check page tree root at the end of parsing

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java?rev=1844427&r1=1844426&r2=1844427&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java Sat Oct 20 17:10:07 2018
@@ -25,6 +25,8 @@ import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSDocument;
 import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.cos.COSNull;
+import org.apache.pdfbox.cos.COSObject;
 import org.apache.pdfbox.io.IOUtils;
 import org.apache.pdfbox.io.RandomAccessRead;
 import org.apache.pdfbox.io.ScratchFile;
@@ -191,6 +193,15 @@ public class PDFParser extends COSParser
         }
         // check pages dictionaries
         checkPages(root);
+        COSBase pages = root.getItem(COSName.PAGES);
+        if (pages instanceof COSObject)
+        {
+            pages = ((COSObject) pages).getObject();
+        }
+        if (pages == null || pages instanceof COSNull)
+        {
+            throw new IOException("Page tree root is null");
+        }
         document.setDecrypted();
         initialParseDone = true;
     }