summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/ghostscript/ghostscript/0003-Fix-Bug-699660-shading_param-incomplete-type-checkin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/ghostscript/ghostscript/0003-Fix-Bug-699660-shading_param-incomplete-type-checkin.patch')
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/0003-Fix-Bug-699660-shading_param-incomplete-type-checkin.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/meta/recipes-extended/ghostscript/ghostscript/0003-Fix-Bug-699660-shading_param-incomplete-type-checkin.patch b/meta/recipes-extended/ghostscript/ghostscript/0003-Fix-Bug-699660-shading_param-incomplete-type-checkin.patch
deleted file mode 100644
index 174f79e42a..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/0003-Fix-Bug-699660-shading_param-incomplete-type-checkin.patch
+++ /dev/null
@@ -1,91 +0,0 @@
1From 759238fd904aab1706dc1007826a13a670cda320 Mon Sep 17 00:00:00 2001
2From: Ken Sharp <ken.sharp@artifex.com>
3Date: Thu, 23 Aug 2018 14:12:48 +0100
4Subject: [PATCH 3/5] Fix Bug 699660 "shading_param incomplete type checking"
5
6Its possible to pass a t_struct parameter to .shfill which is not a
7shading function built by .buildshading. This could then lead to memory
8corruption or a segmentation fault by treating the object passed in
9as if it were a shading.
10
11Its non-trivial to check the t_struct, because this function can take
127 different kinds of structures as a parameter. Checking these is
13possible, of course, but would add a performance penalty.
14
15However, we can note that we never call .shfill without first calling
16.buildshading, and we never call .buildshading without immediately
17calling .shfill. So we can treat these as an atomic operation. The
18.buildshading function takes all its parameters as PostScript objects
19and validates them, so that should be safe.
20
21This allows us to 'hide' the .shfill operator preventing the possibility
22of passing an invalid parameter.
23
24CVE: CVE-2018-15909
25Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git]
26
27Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
28---
29 Resource/Init/gs_init.ps | 4 ++--
30 Resource/Init/gs_ll3.ps | 7 ++++++-
31 Resource/Init/pdf_draw.ps | 3 +--
32 3 files changed, 9 insertions(+), 5 deletions(-)
33
34diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps
35index 6c8da53..1956ed5 100644
36--- a/Resource/Init/gs_init.ps
37+++ b/Resource/Init/gs_init.ps
38@@ -2181,8 +2181,8 @@ SAFER { .setsafeglobal } if
39 /.getiodevice /.getdevparms /.putdevparams /.bbox_transform /.matchmedia /.matchpagesize /.defaultpapersize
40 /.oserrno /.setoserrno /.oserrorstring /.getCPSImode
41 /.getscanconverter /.setscanconverter /.type1encrypt /.type1decrypt/.languagelevel /.setlanguagelevel /.eqproc /.fillpage /.buildpattern1 /.saslprep
42-/.buildshading1 /.buildshadin2 /.buildshading3 /.buildshading4 /.buildshading5 /.buildshading6 /.buildshading7 /.buildshadingpattern
43-/.argindex /.bytestring /.namestring /.stringbreak /.stringmatch /.globalvmarray /.globalvmdict /.globalvmpackedarray /.globalvmstring
44+/.buildshading1 /.buildshading2 /.buildshading3 /.buildshading4 /.buildshading5 /.buildshading6 /.buildshading7 /.buildshadingpattern
45+%/.shfill /.argindex /.bytestring /.namestring /.stringbreak /.stringmatch /.globalvmarray /.globalvmdict /.globalvmpackedarray /.globalvmstring
46 /.localvmarray /.localvmdict /.localvmpackedarray /.localvmstring /.systemvmarray /.systemvmdict /.systemvmpackedarray /.systemvmstring /.systemvmfile /.systemvmlibfile
47 /.systemvmSFD /.settrapparams /.currentsystemparams /.currentuserparams /.getsystemparam /.getuserparam /.setsystemparams /.setuserparams
48 /.checkpassword /.locale_to_utf8 /.currentglobal /.gcheck /.imagepath
49diff --git a/Resource/Init/gs_ll3.ps b/Resource/Init/gs_ll3.ps
50index 5aa56a3..1d37e53 100644
51--- a/Resource/Init/gs_ll3.ps
52+++ b/Resource/Init/gs_ll3.ps
53@@ -440,6 +440,11 @@ systemdict /.reuseparamdict mark
54 /shfill .systemvar /undefined signalerror
55 } ifelse
56 } bind def
57+
58+/.buildshading_and_shfill {
59+ .buildshading .shfill
60+} bind def
61+
62 systemdict /.reuseparamdict undef
63
64 /.buildpattern2 { % <template> <matrix> .buildpattern2
65@@ -464,7 +469,7 @@ systemdict /.reuseparamdict undef
66 % Currently, .shfill requires that the color space
67 % in the pattern be the current color space.
68 % Disable overprintmode for shfill
69- { dup gsave 0 .setoverprintmode .buildshading .shfill } stopped
70+ { dup gsave 0 .setoverprintmode .buildshading_and_shfill } stopped
71 grestore {
72 /$error .systemvar /errorinfo 2 copy known {
73 pop pop
74diff --git a/Resource/Init/pdf_draw.ps b/Resource/Init/pdf_draw.ps
75index e8ca213..a7144d3 100644
76--- a/Resource/Init/pdf_draw.ps
77+++ b/Resource/Init/pdf_draw.ps
78@@ -1365,9 +1365,8 @@ drawopdict begin
79 { dup /.shading .knownget {
80 exch pop
81 } {
82- .buildshading
83+ .buildshading_and_shfill
84 } ifelse
85- .shfill
86 } stopped {
87 pop
88 ( **** Error: Ignoring invalid smooth shading object, output may be incorrect.\n)
89--
902.8.1
91