Summary: | Stack overflow in libpoppler in PDFDoc::markObject() | ||
---|---|---|---|
Product: | poppler | Reporter: | Arseny Solokha <asolokha> |
Component: | general | Assignee: | poppler-bugs <poppler-bugs> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | Thomas.Freitag |
Version: | unspecified | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
gdb backtrace
breaks endless loop in markObject |
Description
Arseny Solokha
2012-01-10 20:10:41 UTC
Thomas, can you have a look? Created attachment 55480 [details] [review] breaks endless loop in markObject The SIGSEGV is caused by an endless loop in markObject. This patch solves it. Beside that, in pdfunite and pdfseparate the initializing of the static variable globalParams was missing. This can cause also segmentation faults, if a PDF references not embedded fonts, therefore I corrected that, too. isn't the >9 a bit too hard? What if the file had an object that was already at gen 9? It marks references, and if it is already marked, also all objects used by this reference are already marked, so in case of pdfseparate and pdfunite You can break immediately (>1). But I use this functionality also in other cases, i.e. when removing spot colors from a PDF. In this case I also to remove remove the spot colorspace objects from the PDF if no more referenced, and in this case I need the counter. (If I'll get some time in future and poppler community is interested, I could also add this tool, removing and / or replacing spot colors, but I think this is a more or less scientific use, and not a lot people are really interested in such a feature) Commited, will be in next release |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.