You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Andreas Lehmkühler (Jira)" <ji...@apache.org> on 2021/04/13 06:10:00 UTC

[jira] [Commented] (PDFBOX-5163) Stack overflow when reading a corrupt dictionary

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

Andreas Lehmkühler commented on PDFBOX-5163:
--------------------------------------------

The pdf is corrupted and the cause for the stack overflow is a broken dictionary. PDFBox tries to read as much as possible and runs into a infinite loop which ends up in stack overflow after a short time. The trunk isn't affected as the parser stops working with an error message when verifying the root dictionary which is broken as well.

> Stack overflow when reading a corrupt dictionary
> ------------------------------------------------
>
>                 Key: PDFBOX-5163
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5163
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Parsing
>    Affects Versions: 2.0.23
>            Reporter: Andreas Lehmkühler
>            Assignee: Andreas Lehmkühler
>            Priority: Major
>             Fix For: 2.0.24
>
>         Attachments: crash_stack_overflow_sample.pdf
>
>
> Richard Smith/Chaoyuan Peng reported an issue with the current version 2.0.23. When parsing a carefully handcrafted pdf the following exception occurs and PDFBox crashes:
> {code}
> java.lang.StackOverflowError: null
>     java.util.WeakHashMap.eq(Unknown Source)
>     java.util.WeakHashMap.get(Unknown Source)
>     java.util.Collections$SynchronizedMap.get(Unknown Source)
>     org.apache.pdfbox.debugger.ui.LogDialog.log(LogDialog.java:143)
>     org.apache.pdfbox.debugger.ui.DebugLog.warn(DebugLog.java:156)
>     org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:933)
>     org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionaryValue(BaseParser.java:154)
>     org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionaryNameValuePair(BaseParser.java:283)
>     org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionary(BaseParser.java:216)
>     org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:859)
>     org.apache.pdfbox.pdfparser.COSParser.parseFileObject(COSParser.java:917)
>     org.apache.pdfbox.pdfparser.COSParser.parseObjectDynamically(COSParser.java:886)
>     org.apache.pdfbox.pdfparser.COSParser.parseObjectDynamically(COSParser.java:806)
>     org.apache.pdfbox.pdfparser.COSParser.getLength(COSParser.java:1060)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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