[ 
https://issues.apache.org/jira/browse/PDFBOX-5395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17514197#comment-17514197
 ] 

Aleksej Kozlov commented on PDFBOX-5395:
----------------------------------------

/ByteRange[0 17131 30609 5130                      ]

File size is 35739.

Now exception is throwed with COSFilterInputStream.java from your commit.
{code:java}
Exception in thread "main" java.io.IOException: FilterInputStream.skip() 
returns 0, range: [37696, 38191]
    at 
org.apache.pdfbox.pdmodel.interactive.digitalsignature.COSFilterInputStream.nextRange(COSFilterInputStream.java:110)
    at 
org.apache.pdfbox.pdmodel.interactive.digitalsignature.COSFilterInputStream.read(COSFilterInputStream.java:71)
    at 
org.apache.pdfbox.pdmodel.interactive.digitalsignature.COSFilterInputStream.read(COSFilterInputStream.java:65)
    at org.apache.pdfbox.io.IOUtils.copy(IOUtils.java:68)
    at org.apache.pdfbox.io.IOUtils.toByteArray(IOUtils.java:52)
    at 
org.apache.pdfbox.pdmodel.interactive.digitalsignature.COSFilterInputStream.toByteArray(COSFilterInputStream.java:82)
    at 
org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature.getSignedContent(PDSignature.java:447)
    at Main.main(Main.java:45){code}

> Hangup in COSFilterInputStream.nextRange
> ----------------------------------------
>
>                 Key: PDFBOX-5395
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5395
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 2.0.25
>            Reporter: Aleksej Kozlov
>            Priority: Major
>
> On some broken PDFs call _PDSignature.getSignedContent_ never returns.
> After exploring stacktrace I've found cycle in 
> _COSFilterInputStream.nextRange_.
> {code:java}
>             while (this.position < this.ranges[this.range][0])
>             {
>                 long skipped = super.skip(this.ranges[this.range][0] - 
> this.position);
>                 this.position += skipped;
>             }
> {code}
> Javadoc for _skip_ says _"The skip method may, for a variety ofreasons, end 
> up skipping over some smaller number of bytes, possibly 0."_
> So, when _skip_ returns 0 this cycle became infinite.
> Tried in versions 2.0.25 and 3.0.0-RC1.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to