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 2022/03/21 18:54:09 UTC

svn commit: r1899114 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/COSFilterInputStream.java

Author: tilman
Date: Mon Mar 21 18:54:09 2022
New Revision: 1899114

URL: http://svn.apache.org/viewvc?rev=1899114&view=rev
Log:
PDFBOX-5395: avoid endless loop, as suggested by Aleksej Kozlov

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/COSFilterInputStream.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/COSFilterInputStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/COSFilterInputStream.java?rev=1899114&r1=1899113&r2=1899114&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/COSFilterInputStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/COSFilterInputStream.java Mon Mar 21 18:54:09 2022
@@ -20,6 +20,7 @@ import java.io.ByteArrayInputStream;
 import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Arrays;
 
 import org.apache.pdfbox.io.IOUtils;
 
@@ -105,6 +106,11 @@ public class COSFilterInputStream extend
             while (this.position < this.ranges[this.range][0])
             {
                 long skipped = super.skip(this.ranges[this.range][0] - this.position);
+                if (skipped == 0)
+                {
+                    throw new IOException("FilterInputStream.skip() returns 0, range: " +
+                            Arrays.toString(this.ranges[this.range]));
+                }
                 this.position += skipped;
             }
             return true;