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/17 19:56:07 UTC
svn commit: r1844158 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
Author: tilman
Date: Wed Oct 17 19:56:07 2018
New Revision: 1844158
URL: http://svn.apache.org/viewvc?rev=1844158&view=rev
Log:
PDFBOX-4352: avoid NullPointerException
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1844158&r1=1844157&r2=1844158&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java Wed Oct 17 19:56:07 2018
@@ -327,7 +327,7 @@ public class COSParser extends BaseParse
parseXrefTable(prev);
if (!parseTrailer())
{
- throw new IOException("Expected trailer object at position: "
+ throw new IOException("Expected trailer object at offset "
+ source.getPosition());
}
COSDictionary trailer = xrefTrailerResolver.getCurrentTrailer();
@@ -2467,7 +2467,7 @@ public class COSParser extends BaseParse
if (source.getPosition() == trailerOffset)
{
// warn only the first time
- LOG.warn("Expected trailer object at position " + trailerOffset
+ LOG.warn("Expected trailer object at offset " + trailerOffset
+ ", keep trying");
}
readLine();
@@ -2886,6 +2886,13 @@ public class COSParser extends BaseParse
private void parseDictionaryRecursive(COSObject dictionaryObject) throws IOException
{
parseObjectDynamically(dictionaryObject, true);
+ if (dictionaryObject.getObject() == null)
+ {
+ // we can't be lenient here, this is called by prepareDecryption()
+ // to get the encryption directory
+ throw new IOException("Dictionary object " + dictionaryObject +
+ " is null at offset " + source.getPosition());
+ }
COSDictionary dictionary = (COSDictionary) dictionaryObject.getObject();
for (COSBase value : dictionary.getValues())
{