You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2017/05/11 20:49:28 UTC

svn commit: r1794891 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Author: lehmi
Date: Thu May 11 20:49:27 2017
New Revision: 1794891

URL: http://svn.apache.org/viewvc?rev=1794891&view=rev
Log:
PDFBOX-3788: avoid negative seek offset

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=1794891&r1=1794890&r2=1794891&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 Thu May 11 20:49:27 2017
@@ -403,11 +403,19 @@ public class COSParser extends BaseParse
             {
                 LOG.debug("Performing brute force search for last startxref entry");
                 long bfOffset = bfSearchForLastStartxrefEntry();
-                source.seek(bfOffset);
-                long bfXref = parseStartXref();
+                boolean offsetIsValid = false;
+                if (bfOffset > -1)
+                {
+                    source.seek(bfOffset);
+                    long bfXref = parseStartXref();
+                    if (bfXref > -1)
+                    {
+                        offsetIsValid = checkXRefOffset(bfXref) == bfXref;
+                    }
+                }
                 source.seek(0);
                 // use the new offset only if it is a valid pointer to a xref table
-                return checkXRefOffset(bfXref) == bfXref ? bfOffset : -1;
+                return offsetIsValid ? bfOffset : -1;
             }
             else
             {