Bug 694858

Summary: Transparency problems
Product: Ghostscript Reporter: Robin Watts <robin.watts>
Component: ImagesAssignee: Michael Vrhel <michael.vrhel>
Status: RESOLVED FIXED    
Severity: normal CC: michael.vrhel
Priority: P4    
Version: master   
Hardware: All   
OS: All   
Customer: Word Size: ---
Attachments: list_of_affected_files.txt
ev3.pdf
0001-Pass-on-an-error-code-rather-than-ignore-it.patch

Description Robin Watts 2013-12-20 04:29:17 UTC
Created attachment 10490 [details]
list_of_affected_files.txt

(No "Transparency" component, so I've assigned this to Images so it goes to Michael)

In gdevp14.c there is a call to pdf14_update_device_color_procs_push_c. The return value to this is not checked.

If we add code to make it check, a la:

                    code = pdf14_update_device_color_procs_push_c(dev,
                                  pdf14pct->params.group_color,
                                  pdf14pct->params.icc_hash, pis,
                                  pdf14pct->params.iccprofile);
                    if (code < 0)
                        return code;

Then the cluster reports many failures. On at least some of the cases this is because pdf14pct->params.group_color is UNKNOWN. This returns a rangecheck.

This causes both differences, and it seems, SEGVs.
Comment 1 Robin Watts 2013-12-20 10:26:27 UTC
Created attachment 10491 [details]
ev3.pdf

Drastically simplified file that shows the problem.
Comment 2 Robin Watts 2013-12-20 10:27:19 UTC
Created attachment 10492 [details]
0001-Pass-on-an-error-code-rather-than-ignore-it.patch

Patch to show the problem.