summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/ghostscript/ghostscript/CVE-2016-7979.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/ghostscript/ghostscript/CVE-2016-7979.patch')
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/CVE-2016-7979.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/meta/recipes-extended/ghostscript/ghostscript/CVE-2016-7979.patch b/meta/recipes-extended/ghostscript/ghostscript/CVE-2016-7979.patch
new file mode 100644
index 0000000000..9e930d3a42
--- /dev/null
+++ b/meta/recipes-extended/ghostscript/ghostscript/CVE-2016-7979.patch
@@ -0,0 +1,48 @@
1From 875a0095f37626a721c7ff57d606a0f95af03913 Mon Sep 17 00:00:00 2001
2From: Ken Sharp <ken.sharp@artifex.com>
3Date: Wed, 5 Oct 2016 10:10:58 +0100
4Subject: [PATCH] DSC parser - validate parameters
5
6Bug #697190 ".initialize_dsc_parser doesn't validate the parameter is a dict type before using it."
7
8Regardless of any security implications, its simply wrong for a PostScript
9operator not to validate its parameter(s).
10
11No differences expected.
12
13Upstream-Status: Backport
14CVE: CVE-2016-7979
15
16Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
17---
18 psi/zdscpars.c | 13 +++++++++----
19 1 file changed, 9 insertions(+), 4 deletions(-)
20
21diff --git a/psi/zdscpars.c b/psi/zdscpars.c
22index c05e154..9b4b605 100644
23--- a/psi/zdscpars.c
24+++ b/psi/zdscpars.c
25@@ -150,11 +150,16 @@ zinitialize_dsc_parser(i_ctx_t *i_ctx_p)
26 ref local_ref;
27 int code;
28 os_ptr const op = osp;
29- dict * const pdict = op->value.pdict;
30- gs_memory_t * const mem = (gs_memory_t *)dict_memory(pdict);
31- dsc_data_t * const data =
32- gs_alloc_struct(mem, dsc_data_t, &st_dsc_data_t, "DSC parser init");
33+ dict *pdict;
34+ gs_memory_t *mem;
35+ dsc_data_t *data;
36
37+ check_read_type(*op, t_dictionary);
38+
39+ pdict = op->value.pdict;
40+ mem = (gs_memory_t *)dict_memory(pdict);
41+
42+ data = gs_alloc_struct(mem, dsc_data_t, &st_dsc_data_t, "DSC parser init");
43 if (!data)
44 return_error(gs_error_VMerror);
45 data->document_level = 0;
46--
472.10.2
48