Summary: | Segfault in CairoOutputDev::endTransparencyGroup | ||
---|---|---|---|
Product: | poppler | Reporter: | Germán Poo-Caamaño <gpoo+bfdo> |
Component: | cairo backend | Assignee: | poppler-bugs <poppler-bugs> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | bugs |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
See Also: |
https://bugzilla.gnome.org/show_bug.cgi?id=733402 https://launchpad.net/bugs/1320132 |
||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
PDF Test case
Patch |
Description
Germán Poo-Caamaño
2014-07-21 23:57:43 UTC
The crash was introduced in c40e2315. The problem is that when entering the cairo work around in CairoOutputDev::setSoftMaskFromImageMask() we return early without creating the transparency group, but CairoOutputDev::unsetSoftMaskFromImageMask() assumes the transparency group is always created. Checking groupColorSpaceStack in unsetSoftMaskFromImageMask to return early fixes the issue, but I'm not sure that's the best way to check whether we are in a transparency group or not. Created attachment 103391 [details] [review] Patch I think it would be better to ensure we always push a transparency group. No regressions in my test suite with this patch, so pushed to both branches. |
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.