git: 9front

Download patch

ref: e3e4a768e2a4f0e3d2b0f9866d66e672fd335694
parent: b78c03f8667d1c82ad992a9ba7604e336f2f67a5
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]);
  
     /*
--