1 |
From f5c7555c30393e64ec1f5ab0dfae5b55b3b3fc78 Mon Sep 17 00:00:00 2001 |
2 |
From: Chris Liddell <chris.liddell@artifex.com> |
3 |
Date: Sat, 8 Oct 2016 16:10:27 +0100 |
4 |
Subject: [PATCH] Bug 697203: check for sufficient params in .sethalftone5 |
5 |
|
6 |
and param types |
7 |
--- |
8 |
psi/zht2.c | 12 ++++++++++-- |
9 |
1 file changed, 10 insertions(+), 2 deletions(-) |
10 |
|
11 |
diff --git a/psi/zht2.c b/psi/zht2.c |
12 |
index fb4a264..dfa27a4 100644 |
13 |
--- a/psi/zht2.c |
14 |
+++ b/psi/zht2.c |
15 |
@@ -82,14 +82,22 @@ zsethalftone5(i_ctx_t *i_ctx_p) |
16 |
gs_memory_t *mem; |
17 |
uint edepth = ref_stack_count(&e_stack); |
18 |
int npop = 2; |
19 |
- int dict_enum = dict_first(op); |
20 |
+ int dict_enum; |
21 |
ref rvalue[2]; |
22 |
int cname, colorant_number; |
23 |
byte * pname; |
24 |
uint name_size; |
25 |
int halftonetype, type = 0; |
26 |
gs_state *pgs = igs; |
27 |
- int space_index = r_space_index(op - 1); |
28 |
+ int space_index; |
29 |
+ |
30 |
+ if (ref_stack_count(&o_stack) < 2) |
31 |
+ return_error(gs_error_stackunderflow); |
32 |
+ check_type(*op, t_dictionary); |
33 |
+ check_type(*(op - 1), t_dictionary); |
34 |
+ |
35 |
+ dict_enum = dict_first(op); |
36 |
+ space_index = r_space_index(op - 1); |
37 |
|
38 |
mem = (gs_memory_t *) idmemory->spaces_indexed[space_index]; |
39 |
|
40 |
-- |
41 |
2.9.1 |
42 |
|