summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2016-10-08 16:10:27 +0100
committerChris Liddell <chris.liddell@artifex.com>2016-10-08 16:18:05 +0100
commitf5c7555c30393e64ec1f5ab0dfae5b55b3b3fc78 (patch)
treef3d174b0e35684ebf508371c373e6b30b22d1f23
parenta5360401495654e89301b2516703c1d2877fc5ba (diff)
Bug 697203: check for sufficient params in .sethalftone5
and param types
-rw-r--r--psi/zht2.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/psi/zht2.c b/psi/zht2.c
index fb4a2649d..dfa27a40f 100644
--- a/psi/zht2.c
+++ b/psi/zht2.c
@@ -82,14 +82,22 @@ zsethalftone5(i_ctx_t *i_ctx_p)
gs_memory_t *mem;
uint edepth = ref_stack_count(&e_stack);
int npop = 2;
- int dict_enum = dict_first(op);
+ int dict_enum;
ref rvalue[2];
int cname, colorant_number;
byte * pname;
uint name_size;
int halftonetype, type = 0;
gs_gstate *pgs = igs;
- int space_index = r_space_index(op - 1);
+ int space_index;
+
+ if (ref_stack_count(&o_stack) < 2)
+ return_error(gs_error_stackunderflow);
+ check_type(*op, t_dictionary);
+ check_type(*(op - 1), t_dictionary);
+
+ dict_enum = dict_first(op);
+ space_index = r_space_index(op - 1);
mem = (gs_memory_t *) idmemory->spaces_indexed[space_index];