ref: 07a14612a1f626716a7746000dcc4492a8648223
parent: 9b2d3ed37a9d58d8ea4692858b47a9f1b03d7e65
author: mischief <mischief@offblast.org>
date: Mon Mar 13 14:12:17 EDT 2017
gs: check for sufficient params in .sethalftone5 ghostscript bug 697203, upstream commit f5c7555c303
--- a/sys/src/cmd/gs/src/zht2.c
+++ b/sys/src/cmd/gs/src/zht2.c
@@ -81,7 +81,7 @@
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;
@@ -88,13 +88,19 @@
uint name_size;
int halftonetype, type = 0;
gs_state *pgs = igs;
- int space_index = r_space_index(op - 1);
+ int space_index;
+ if (ref_stack_count(&o_stack) < 2)
+ return_error(e_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];
- check_type(*op, t_dictionary);
check_dict_read(*op);
- check_type(op[-1], t_dictionary);
check_dict_read(op[-1]);
/*