123456789101112131415161718192021222324252627282930313233343536373839404142 |
- From 875a0095f37626a721c7ff57d606a0f95af03913 Mon Sep 17 00:00:00 2001
- From: Ken Sharp <ken.sharp@artifex.com>
- Date: Wed, 5 Oct 2016 10:10:58 +0100
- Subject: [PATCH] DSC parser - validate parameters
- Bug #697190 ".initialize_dsc_parser doesn't validate the parameter is a dict type before using it."
- Regardless of any security implications, its simply wrong for a PostScript
- operator not to validate its parameter(s).
- No differences expected.
- ---
- psi/zdscpars.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
- diff --git a/psi/zdscpars.c b/psi/zdscpars.c
- index c05e154..9b4b605 100644
- --- a/psi/zdscpars.c
- +++ b/psi/zdscpars.c
- @@ -150,11 +150,16 @@ zinitialize_dsc_parser(i_ctx_t *i_ctx_p)
- ref local_ref;
- int code;
- os_ptr const op = osp;
- - dict * const pdict = op->value.pdict;
- - gs_memory_t * const mem = (gs_memory_t *)dict_memory(pdict);
- - dsc_data_t * const data =
- - gs_alloc_struct(mem, dsc_data_t, &st_dsc_data_t, "DSC parser init");
- + dict *pdict;
- + gs_memory_t *mem;
- + dsc_data_t *data;
-
- + check_read_type(*op, t_dictionary);
- +
- + pdict = op->value.pdict;
- + mem = (gs_memory_t *)dict_memory(pdict);
- +
- + data = gs_alloc_struct(mem, dsc_data_t, &st_dsc_data_t, "DSC parser init");
- if (!data)
- return_error(gs_error_VMerror);
- data->document_level = 0;
- --
- 2.7.4
|