summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Sharp <ken.sharp@artifex.com>2017-09-06 10:03:40 +0100
committerKen Sharp <ken.sharp@artifex.com>2017-09-06 10:03:40 +0100
commit18f009a08f1eac4708188b516d375356a502a3b1 (patch)
tree7f86dd9301dbb6dc7c5ed0f71c62a3db85be79ee
parent61856e04852124491a47fa6379f1c3ad296f3366 (diff)
downloadghostpdl-18f009a08f1eac4708188b516d375356a502a3b1.tar.gz
Coverity IDs 138751, 141130, 141131, 158373
138751 - The code assumes that a separating device has an ICC profile but doesn't check. Add a check and return an error if it doesn't. 141130 - initialise a structure member 141131 - check and action return codes 158373 put #if DEBUG round some code that's only present to provide a breakpoint location in debuggers. (and told Coverity to ignore this)
-rw-r--r--base/gdevp14.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/base/gdevp14.c b/base/gdevp14.c
index f1ad11a0d..2fd33a937 100644
--- a/base/gdevp14.c
+++ b/base/gdevp14.c
@@ -3889,9 +3889,14 @@ pdf14_push_text_group(gx_device *dev, gs_gstate *pgs, gx_path *path,
params.text_group = PDF14_TEXTGROUP_BT_PUSHED;
gs_setopacityalpha(pgs, 1.0);
gs_setblendmode(pgs, BLEND_MODE_Normal);
- if (is_clist)
+ if (is_clist) {
code = pdf14_clist_update_params(pdev, pgs, false, NULL);
+ if (code < 0)
+ return code;
+ }
code = gs_begin_transparency_group(pgs, &params, &bbox);
+ if (code < 0)
+ return code;
gs_setopacityalpha(pgs, opacity);
gs_setblendmode(pgs, blend_mode);
if (is_clist)
@@ -4691,7 +4696,12 @@ pdf14_update_device_color_procs_push_c(gx_device *dev,
}
if (update_color_info){
if (pdev->sep_device && !is_mask) {
- int num_spots = pdev->color_info.num_components - icc_profile_dev->num_comps;
+ int num_spots;
+
+ if (icc_profile_dev == NULL)
+ return_error(gs_error_undefined);
+
+ num_spots = pdev->color_info.num_components - icc_profile_dev->num_comps;
if (num_spots > 0) {
new_num_comps += num_spots;
@@ -6421,7 +6431,9 @@ c_pdf14trans_read(gs_composite_t * * ppct, const byte * data,
break;
case PDF14_END_TRANS_GROUP:
case PDF14_END_TRANS_TEXT_GROUP:
+#ifdef DEBUG
code += 0; /* A good place for a breakpoint. */
+#endif
break; /* No data */
case PDF14_PUSH_TRANS_STATE:
break;
@@ -8069,6 +8081,7 @@ pdf14_clist_begin_typed_image(gx_device * dev, const gs_gstate * pgs,
tgp.icc_hashcode = 0;
tgp.group_color_numcomps = ptile->ttrans->n_chan-1;
tgp.ColorSpace = NULL;
+ tgp.text_group = 0;
/* This will handle the compositor command */
gs_begin_transparency_group((gs_gstate *) pgs_noconst, &tgp,
&bbox_out);