Bug 18254 - Poppler sends Cairo a non-invertible matrix
Summary: Poppler sends Cairo a non-invertible matrix
Status: RESOLVED FIXED
Alias: None
Product: poppler
Classification: Unclassified
Component: cairo backend (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: poppler-bugs
QA Contact:
URL:
Whiteboard:
Keywords:
: 18238 18429 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-10-27 15:56 UTC by Troy Henderson
Modified: 2008-11-12 02:37 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Culprit PDF (2.57 KB, application/pdf)
2008-10-27 15:56 UTC, Troy Henderson
Details
Culprit (original) EPS (926 bytes, application/postscript)
2008-10-27 15:57 UTC, Troy Henderson
Details
Ensure font matrix is invertable (1.45 KB, patch)
2008-11-12 02:15 UTC, Adrian Johnson
Details | Splinter Review

Description Troy Henderson 2008-10-27 15:56:53 UTC
Created attachment 19891 [details]
Culprit PDF

EPS has a "fontbox" (sorry that I don't know the technical term) which is yscaled by a factor of 0, and Poppler sends Cairo a non-invertible matrix resulting in the following Cairo error:

cairo context error: invalid matrix (not invertible)

The circle in this PDF fails to render in Evince with Poppler+Cairo since in the PostScript the "yscaled 0" fontbox was drawn before the circle.  It's like Poppler bails out after encountering this issue.
Comment 1 Troy Henderson 2008-10-27 15:57:30 UTC
Created attachment 19892 [details]
Culprit (original) EPS
Comment 2 Adrian Johnson 2008-11-12 02:15:37 UTC
Created attachment 20245 [details] [review]
Ensure font matrix is invertable

The problem is cairo is passed a non invertable font matrix. Fix attached.
Comment 3 Adrian Johnson 2008-11-12 02:16:00 UTC
*** Bug 18429 has been marked as a duplicate of this bug. ***
Comment 4 Adrian Johnson 2008-11-12 02:22:38 UTC
*** Bug 18238 has been marked as a duplicate of this bug. ***
Comment 5 Carlos Garcia Campos 2008-11-12 02:37:37 UTC
Pushed! Thanks Adrian :-)


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.