Summary: | Trouble reading a PDF file | ||
---|---|---|---|
Product: | poppler | Reporter: | Jonathan Leighton <j> |
Component: | general | Assignee: | poppler-bugs <poppler-bugs> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | seb128 |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
URL: | http://www.smile.co.uk/images/pdf/CurrentAccountT&Cs.pdf | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | Try to find another rootNum if actual rootNum doesn't point to a dict |
Description
Jonathan Leighton
2008-01-30 06:04:19 UTC
Urgh, looks like we are crashing. Error: PDF file is damaged - attempting to reconstruct xref table... Error: Catalog object is wrong type (array) Error: Couldn't read page catalog ==9733== Conditional jump or move depends on uninitialised value(s) ==9733== at 0x408E4EB: Catalog::~Catalog() (Catalog.cc:217) ==9733== by 0x40ECDC2: PDFDoc::~PDFDoc() (PDFDoc.cc:233) Not crashing in poppler, just in my test tool. Looks like some kind of weirdness in the startxref search. Yeah it has several xref and there is one that points to 120 object as catalog but 120 is not a catalog but something else, the other xref says 114 is the catalog and it is, but we pick the 120 xref because it's the last and i think that's correct behaviour. *** Bug 14399 has been marked as a duplicate of this bug. *** Works fine now. Somehow it stopped working :-/ I don't know why it stopped working, but I found a solution for it: If the XRef catalog is not a dictionary, I try to reconstruct XRef and find another root reference first before returning. This works for this PDF, but I have to regtest the patch first. I'll probably do that next weekend and I'll come back then. Created attachment 66877 [details] [review] Try to find another rootNum if actual rootNum doesn't point to a dict This patch solves the issue and is regtested successfully Commited |
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.