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 2017/08/24 18:18:12 UTC

svn commit: r1806071 - in /pdfbox/branches/1.8/pdfbox/src: main/java/org/apache/pdfbox/pdfparser/PDFStreamParser.java test/java/org/apache/pdfbox/pdfparser/PDFStreamParserTest.java

Author: tilman
Date: Thu Aug 24 18:18:12 2017
New Revision: 1806071

URL: http://svn.apache.org/viewvc?rev=1806071&view=rev
Log:
PDFBOX-3909: there can be a hex 0 before the operator after the EI

Modified:
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFStreamParser.java
    pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/PDFStreamParserTest.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFStreamParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFStreamParser.java?rev=1806071&r1=1806070&r2=1806071&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFStreamParser.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFStreamParser.java Thu Aug 24 18:18:12 2017
@@ -466,19 +466,19 @@ public class PDFStreamParser extends Bas
             for (int bIdx = 0; bIdx < readBytes; bIdx++)
             {
                 final byte b = binCharTestArr[bIdx];
-                if (b < 0x09 || b > 0x0a && b < 0x20 && b != 0x0d)
+                if (b != 0 && b < 0x09 || b > 0x0a && b < 0x20 && b != 0x0d)
                 {
                     // control character or > 0x7f -> we have binary data
                     noBinData = false;
                     break;
                 }
                 // find the start of a PDF operator
-                if (startOpIdx == -1 && !(b == 9 || b == 0x20 || b == 0x0a || b == 0x0d))
+                if (startOpIdx == -1 && !(b == 0 || b == 9 || b == 0x20 || b == 0x0a || b == 0x0d))
                 {
                     startOpIdx = bIdx;
                 }
                 else if (startOpIdx != -1 && endOpIdx == -1 &&
-                         (b == 9 || b == 0x20 || b == 0x0a || b == 0x0d))
+                         (b == 0 || b == 9 || b == 0x20 || b == 0x0a || b == 0x0d))
                 {
                     endOpIdx = bIdx;
                 }

Modified: pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/PDFStreamParserTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/PDFStreamParserTest.java?rev=1806071&r1=1806070&r2=1806071&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/PDFStreamParserTest.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdfparser/PDFStreamParserTest.java Thu Aug 24 18:18:12 2017
@@ -47,6 +47,8 @@ public class PDFStreamParserTest extends
         testInlineImage2ops("ID\n12345EI  EMC", "12345", "EMC");
         testInlineImage2ops("ID\n12345EI  Q ", "12345", "Q");
         testInlineImage2ops("ID\n12345EI  EMC ", "12345", "EMC");
+        
+        testInlineImage2ops("ID\n12345EI \000Q", "12345", "Q");
 
         testInlineImage2ops("ID\n12345EI Q                             ", "12345", "Q");
         testInlineImage2ops("ID\n12345EI EMC                           ", "12345", "EMC");