diff options
author | Robin Watts <Robin.Watts@artifex.com> | 2022-02-16 18:50:56 +0000 |
---|---|---|
committer | Robin Watts <Robin.Watts@artifex.com> | 2022-02-17 11:26:05 +0000 |
commit | 5ded6a37e4342b226bbf00338ee43836a2d18abd (patch) | |
tree | 259ef0c0a827858cd9090358d67da60b711d800b /base/gdevprn.c | |
parent | 36a8420ecaf3acff28658e6826401d81fa4f36fd (diff) | |
download | ghostpdl-5ded6a37e4342b226bbf00338ee43836a2d18abd.tar.gz |
Fix some coverity issues.
Diffstat (limited to 'base/gdevprn.c')
-rw-r--r-- | base/gdevprn.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/base/gdevprn.c b/base/gdevprn.c index a78a28cbf..296e97340 100644 --- a/base/gdevprn.c +++ b/base/gdevprn.c @@ -1194,11 +1194,18 @@ gx_render_plane_init(gx_render_plane_t *render_plane, const gx_device *dev, int num_planes = dev->color_info.num_components; int plane_depth = dev->color_info.depth / num_planes; - if (index < 0 || index >= num_planes) + if (index < -1 || index >= num_planes) return_error(gs_error_rangecheck); render_plane->index = index; - render_plane->depth = plane_depth; - render_plane->shift = plane_depth * (num_planes - 1 - index); + if (index == -1) { + /* No plane, chunky results required. */ + render_plane->depth = dev->color_info.depth; + render_plane->shift = 0; + } else { + /* A single plane */ + render_plane->depth = plane_depth; + render_plane->shift = plane_depth * (num_planes - 1 - index); + } return 0; } |