Created attachment 61149 [details]
PDF showing the bug
The attached pdf has an image that is not render by poppler. When rendering with the poppler-glib-demo I get:
Syntax Warning: not an ICC profile, invalid signature
Syntax Warning: read ICCBased color space profile error
Forwarded from https://bugzilla.gnome.org/show_bug.cgi?id=675577
Adobe Acrobat Pro says: ICC profile (of image with ICCBased colorspace) is corrupt. If You render it without lcms (the poppler used color management tool), it is okay. I'm not knowing, if this is possible with poppler-glib-demo or if You have to recompile it.
Probably poppler should ignore embedded invalid color profiles like acrobat reader does it.
Moving to Cairo backend only since it works with splash.
The broken ICC profile is a red herring. The problem is an XObject with a huge BBox that overflows cairo's 24.8 fixed point.
In PDF all images have a size of 1x1. Normally the ctm is set to make the image the correct size then the image is drawn. eg
q 640 0 0 480 0 0 /Img Do Q
But in this PDF the image is inside a XObject. eg
q 540 0 0 800 0 0 /Foo Do Q
/BBox [0 0 20000 20000]
The actual BBox of Foo is 1x1. When cairo converts the 20000x20000 clip path to device units it overflows the 24.8 fixed point resulting a very small clip path the just happens to be an all white region of the image.
I'm not sure what would be the best way to fix this. One solution would be to add a range check flag to doPath() which is set in ::clip. In doPath() when the range check is enabled, check if the path is a rectangle and if it is, intersect it with the current clip region before calling cairo clip.
May I join this one,
I also hit this bug and would appreciate a fix.
-- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/poppler/poppler/issues/471.