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 2020/10/03 09:03:00 UTC

[jira] [Comment Edited] (PDFBOX-4965) Stack overflow in PDFCloneUtility

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

Andreas Lehmkühler edited comment on PDFBOX-4965 at 10/3/20, 9:02 AM:
----------------------------------------------------------------------

I've found the culprit, there is a chain of dictionary entries like:
{code}
%% Original object ID: 615 0 
627 0 obj 
<< 
/Dest [ 
  15 0 R 
  /XYZ 
  428 
  392 
  0 
  ] 
 /Next 625 0 R 
 /Parent 5 0 R 
 /Prev 629 0 R 
 /Title (position_1516796_2160) 
>> 
endobj 
{code}

that is over 5000 entries in length.

The document is just a couple of pages of text, but it was created by Microsoft Word .....

 

With a larger stack size it works. However it is still possible to craft a PDF file that will cause a stackoverflow when used in the merger utility. Perhaps the cloneForNewDocument can be implemented without recursion.

 


was (Author: dennisn):
I've found the culprit, there is a chain of dictionary entries like:

{{%% Original object ID: 615 0 }}
{{627 0 obj }}
{{<< }}
{{/Dest [ }}
{{  15 0 R }}
{{  /XYZ }}
{{  428 }}
{{  392 }}
{{  0 }}
{{  ] }}
{{ /Next 625 0 R }}
{{ /Parent 5 0 R }}
{{ /Prev 629 0 R }}
{{ /Title (position_1516796_2160) }}
{{>> }}
{{endobj }}

that is over 5000 entries in length.

The document is just a couple of pages of text, but it was created by Microsoft Word .....

 

With a larger stack size it works. However it is still possible to craft a PDF file that will cause a stackoverflow when used in the merger utility. Perhaps the cloneForNewDocument can be implemented without recursion.

 

> Stack overflow in PDFCloneUtility
> ---------------------------------
>
>                 Key: PDFBOX-4965
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4965
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.0.21
>         Environment: FreeBSD
>            Reporter: Dennis Noordsij
>            Priority: Minor
>
> My production system crashed with the following trace:
> java.lang.StackOverflowError
>  at java.util.HashMap.hash(HashMap.java:339)
>  at java.util.HashMap.get(HashMap.java:557)
>  at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:81)
>  at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:146)
>  at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:109)
>  at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:146)
>  at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:109)
>  at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:146)
> (repeated)
>  
> We do a lot with PDF files and I don't have the actual PDF or action which caused this at the moment, but perhaps this already rings a bell with someone of what kind of bug this could be or wether I am doing something strange?
>  



--
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