diff options
author | Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> | 2018-09-17 22:14:50 +0530 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-09-20 05:41:32 -0700 |
commit | ebecaa5f4814fa30d0b304c495ed4533bbffd5a6 (patch) | |
tree | c99267c1711cf17a9b6dcac7089506a697b4d8ba /meta | |
parent | 8a839b7e2bb1f19025a8dab388019697c7512500 (diff) | |
download | poky-ebecaa5f4814fa30d0b304c495ed4533bbffd5a6.tar.gz |
ghostscript: upgrade to 9.25
Removed below patches, as v9.25 source already has those
changes/security fixes:
0001-Bug-699665-memory-corruption-in-aesdecode.patch
0001-pdfwrite-Guard-against-trying-to-output-an-infinite-.patch
0002-Bug-699656-Handle-LockDistillerParams-not-being-a-bo.patch
0003-Fix-Bug-699660-shading_param-incomplete-type-checkin.patch
0004-Hide-the-.shfill-operator.patch
0005-Bug-699657-properly-apply-file-permissions-to-.tempf.patch
remove-direct-symlink.patch
Re-worked ghostscript-9.21-native-fix-disable-system-libtiff.patch
and ghostscript-9.21-prevent_recompiling.patch
to fix warnings in do_patch task of ghostscript v9.25 recipe.
Highlights of ghostscript v9.25 release:
---------------------------------------
- This release fixes problems with argument handling, some unintended results
of the security fixes to the SAFER file access restrictions
(specifically accessing ICC profile files), and some additional security
issues over the recent 9.24 release.
- Note: The ps2epsi utility does not, and cannot call Ghostscript with
the -dSAFER command line option. It should never be called with input
from untrusted sources.
- Security issues have been the primary focus of this release, including
solving several (well publicised) real and potential exploits.
- As well as Ghostscript itself, jbig2dec has had a significant amount of work
improving its robustness in the face of out specification files.
- IMPORTANT: We are in the process of forking LittleCMS. LCMS2 is not thread
safe, and cannot be made thread safe without breaking the ABI.
Our fork will be thread safe, and include performance enhancements
(these changes have all be been offered and rejected upstream). We will
maintain compatibility between Ghostscript and LCMS2 for a time, but not in
perpetuity. Our fork will be available as its own package separately from
Ghostscript (and MuPDF).
- The usual round of bug fixes, compatibility changes, and incremental
improvements.
(From OE-Core rev: 4340928b8878b91b5a2750eb6bc87918740511ca)
Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
10 files changed, 13 insertions, 396 deletions
diff --git a/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-699665-memory-corruption-in-aesdecode.patch b/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-699665-memory-corruption-in-aesdecode.patch deleted file mode 100644 index df654f721d..0000000000 --- a/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-699665-memory-corruption-in-aesdecode.patch +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | From b9fa1157e1f4982d42241146c9b7c6c789d6f076 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ken Sharp <ken.sharp@artifex.com> | ||
3 | Date: Thu, 23 Aug 2018 15:42:02 +0100 | ||
4 | Subject: [PATCH 1/5] Bug 699665 "memory corruption in aesdecode" | ||
5 | |||
6 | The specimen file calls aesdecode without specifying the key to be | ||
7 | used, though it does manage to do enough work with the PDF interpreter | ||
8 | routines to get access to aesdecode (which isn't normally available). | ||
9 | |||
10 | This causes us to read uninitialised memory, which can (and often does) | ||
11 | lead to a segmentation fault. | ||
12 | |||
13 | In this commit we set the key to NULL explicitly during intialisation | ||
14 | and then check it before we read it. If its NULL we just return. | ||
15 | |||
16 | It seems bizarre that we don't return error codes, we should probably | ||
17 | look into that at some point, but this prevents the code trying to | ||
18 | read uninitialised memory. | ||
19 | |||
20 | CVE: CVE-2018-15911 | ||
21 | Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] | ||
22 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
23 | --- | ||
24 | base/aes.c | 3 +++ | ||
25 | base/saes.c | 1 + | ||
26 | 2 files changed, 4 insertions(+) | ||
27 | |||
28 | diff --git a/base/aes.c b/base/aes.c | ||
29 | index a6bce93..e86f000 100644 | ||
30 | --- a/base/aes.c | ||
31 | +++ b/base/aes.c | ||
32 | @@ -662,6 +662,9 @@ void aes_crypt_ecb( aes_context *ctx, | ||
33 | } | ||
34 | #endif | ||
35 | |||
36 | + if (ctx == NULL || ctx->rk == NULL) | ||
37 | + return; | ||
38 | + | ||
39 | RK = ctx->rk; | ||
40 | |||
41 | GET_ULONG_LE( X0, input, 0 ); X0 ^= *RK++; | ||
42 | diff --git a/base/saes.c b/base/saes.c | ||
43 | index 6db0e8b..307ed74 100644 | ||
44 | --- a/base/saes.c | ||
45 | +++ b/base/saes.c | ||
46 | @@ -120,6 +120,7 @@ s_aes_process(stream_state * ss, stream_cursor_read * pr, | ||
47 | gs_throw(gs_error_VMerror, "could not allocate aes context"); | ||
48 | return ERRC; | ||
49 | } | ||
50 | + memset(state->ctx, 0x00, sizeof(aes_context)); | ||
51 | if (state->keylength < 1 || state->keylength > SAES_MAX_KEYLENGTH) { | ||
52 | gs_throw1(gs_error_rangecheck, "invalid aes key length (%d bytes)", | ||
53 | state->keylength); | ||
54 | -- | ||
55 | 2.8.1 | ||
56 | |||
diff --git a/meta/recipes-extended/ghostscript/ghostscript/0001-pdfwrite-Guard-against-trying-to-output-an-infinite-.patch b/meta/recipes-extended/ghostscript/ghostscript/0001-pdfwrite-Guard-against-trying-to-output-an-infinite-.patch deleted file mode 100644 index bac7365f3c..0000000000 --- a/meta/recipes-extended/ghostscript/ghostscript/0001-pdfwrite-Guard-against-trying-to-output-an-infinite-.patch +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | From 39b1e54b2968620723bf32e96764c88797714879 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ken Sharp <ken.sharp@artifex.com> | ||
3 | Date: Wed, 18 Apr 2018 15:46:32 +0100 | ||
4 | Subject: [PATCH] pdfwrite - Guard against trying to output an infinite number | ||
5 | |||
6 | Bug #699255 " Buffer overflow on pprintg1 due to mishandle postscript file data to pdf" | ||
7 | |||
8 | The file uses an enormous parameter to xyxhow, causing an overflow in | ||
9 | the calculation of text positioning (value > 1e39). | ||
10 | |||
11 | Since this is basically a nonsense value, and PostScript only supports | ||
12 | real values up to 1e38, this patch follows the same approach as for | ||
13 | a degenerate CTM, and treats it as 0. | ||
14 | |||
15 | Adobe Acrobat Distiller throws a limitcheck error, so we could do that | ||
16 | instead if this approach proves to be a problem. | ||
17 | |||
18 | Upstream-Status: Backport | ||
19 | git://git.ghostscript.com/ghostpdl.git | ||
20 | CVE: CVE-2018-10194 | ||
21 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
22 | |||
23 | --- | ||
24 | devices/vector/gdevpdts.c | 7 ++++++- | ||
25 | 1 file changed, 6 insertions(+), 1 deletion(-) | ||
26 | |||
27 | diff --git a/devices/vector/gdevpdts.c b/devices/vector/gdevpdts.c | ||
28 | index 848ad78..172fe6b 100644 | ||
29 | --- a/devices/vector/gdevpdts.c | ||
30 | +++ b/devices/vector/gdevpdts.c | ||
31 | @@ -103,9 +103,14 @@ append_text_move(pdf_text_state_t *pts, double dw) | ||
32 | static int | ||
33 | set_text_distance(gs_point *pdist, double dx, double dy, const gs_matrix *pmat) | ||
34 | { | ||
35 | - int code = gs_distance_transform_inverse(dx, dy, pmat, pdist); | ||
36 | + int code; | ||
37 | double rounded; | ||
38 | |||
39 | + if (dx > 1e38 || dy > 1e38) | ||
40 | + code = gs_error_undefinedresult; | ||
41 | + else | ||
42 | + code = gs_distance_transform_inverse(dx, dy, pmat, pdist); | ||
43 | + | ||
44 | if (code == gs_error_undefinedresult) { | ||
45 | /* The CTM is degenerate. | ||
46 | Can't know the distance in user space. | ||
47 | -- | ||
48 | 2.7.4 | ||
49 | |||
diff --git a/meta/recipes-extended/ghostscript/ghostscript/0002-Bug-699656-Handle-LockDistillerParams-not-being-a-bo.patch b/meta/recipes-extended/ghostscript/ghostscript/0002-Bug-699656-Handle-LockDistillerParams-not-being-a-bo.patch deleted file mode 100644 index a16f215bd3..0000000000 --- a/meta/recipes-extended/ghostscript/ghostscript/0002-Bug-699656-Handle-LockDistillerParams-not-being-a-bo.patch +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | From 1b516be5f6829ab6ce37835529ba08abd6d18663 Mon Sep 17 00:00:00 2001 | ||
2 | From: Chris Liddell <chris.liddell@artifex.com> | ||
3 | Date: Tue, 21 Aug 2018 16:42:45 +0100 | ||
4 | Subject: [PATCH 2/5] Bug 699656: Handle LockDistillerParams not being a | ||
5 | boolean | ||
6 | |||
7 | This caused a function call commented as "Can't fail" to fail, and resulted | ||
8 | in memory correuption and a segfault. | ||
9 | |||
10 | CVE: CVE-2018-15910 | ||
11 | Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] | ||
12 | |||
13 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
14 | --- | ||
15 | devices/vector/gdevpdfp.c | 2 +- | ||
16 | psi/iparam.c | 7 ++++--- | ||
17 | 2 files changed, 5 insertions(+), 4 deletions(-) | ||
18 | |||
19 | diff --git a/devices/vector/gdevpdfp.c b/devices/vector/gdevpdfp.c | ||
20 | index 522db7a..f2816b9 100644 | ||
21 | --- a/devices/vector/gdevpdfp.c | ||
22 | +++ b/devices/vector/gdevpdfp.c | ||
23 | @@ -364,7 +364,7 @@ gdev_pdf_put_params_impl(gx_device * dev, const gx_device_pdf * save_dev, gs_par | ||
24 | * LockDistillerParams is read again, and reset if necessary, in | ||
25 | * psdf_put_params. | ||
26 | */ | ||
27 | - ecode = param_read_bool(plist, "LockDistillerParams", &locked); | ||
28 | + ecode = param_read_bool(plist, (param_name = "LockDistillerParams"), &locked); | ||
29 | if (ecode < 0) | ||
30 | param_signal_error(plist, param_name, ecode); | ||
31 | |||
32 | diff --git a/psi/iparam.c b/psi/iparam.c | ||
33 | index 68c20d4..0279455 100644 | ||
34 | --- a/psi/iparam.c | ||
35 | +++ b/psi/iparam.c | ||
36 | @@ -822,10 +822,11 @@ static int | ||
37 | ref_param_read_signal_error(gs_param_list * plist, gs_param_name pkey, int code) | ||
38 | { | ||
39 | iparam_list *const iplist = (iparam_list *) plist; | ||
40 | - iparam_loc loc; | ||
41 | + iparam_loc loc = {0}; | ||
42 | |||
43 | - ref_param_read(iplist, pkey, &loc, -1); /* can't fail */ | ||
44 | - *loc.presult = code; | ||
45 | + ref_param_read(iplist, pkey, &loc, -1); | ||
46 | + if (loc.presult) | ||
47 | + *loc.presult = code; | ||
48 | switch (ref_param_read_get_policy(plist, pkey)) { | ||
49 | case gs_param_policy_ignore: | ||
50 | return 0; | ||
51 | -- | ||
52 | 2.8.1 | ||
53 | |||
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 @@ | |||
1 | From 759238fd904aab1706dc1007826a13a670cda320 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ken Sharp <ken.sharp@artifex.com> | ||
3 | Date: Thu, 23 Aug 2018 14:12:48 +0100 | ||
4 | Subject: [PATCH 3/5] Fix Bug 699660 "shading_param incomplete type checking" | ||
5 | |||
6 | Its possible to pass a t_struct parameter to .shfill which is not a | ||
7 | shading function built by .buildshading. This could then lead to memory | ||
8 | corruption or a segmentation fault by treating the object passed in | ||
9 | as if it were a shading. | ||
10 | |||
11 | Its non-trivial to check the t_struct, because this function can take | ||
12 | 7 different kinds of structures as a parameter. Checking these is | ||
13 | possible, of course, but would add a performance penalty. | ||
14 | |||
15 | However, we can note that we never call .shfill without first calling | ||
16 | .buildshading, and we never call .buildshading without immediately | ||
17 | calling .shfill. So we can treat these as an atomic operation. The | ||
18 | .buildshading function takes all its parameters as PostScript objects | ||
19 | and validates them, so that should be safe. | ||
20 | |||
21 | This allows us to 'hide' the .shfill operator preventing the possibility | ||
22 | of passing an invalid parameter. | ||
23 | |||
24 | CVE: CVE-2018-15909 | ||
25 | Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] | ||
26 | |||
27 | Signed-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 | |||
34 | diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps | ||
35 | index 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 | ||
49 | diff --git a/Resource/Init/gs_ll3.ps b/Resource/Init/gs_ll3.ps | ||
50 | index 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 | ||
74 | diff --git a/Resource/Init/pdf_draw.ps b/Resource/Init/pdf_draw.ps | ||
75 | index 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 | -- | ||
90 | 2.8.1 | ||
91 | |||
diff --git a/meta/recipes-extended/ghostscript/ghostscript/0004-Hide-the-.shfill-operator.patch b/meta/recipes-extended/ghostscript/ghostscript/0004-Hide-the-.shfill-operator.patch deleted file mode 100644 index 7c6d002620..0000000000 --- a/meta/recipes-extended/ghostscript/ghostscript/0004-Hide-the-.shfill-operator.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | From ee9e8065e7d7b3adbc25fd655727ca72861ee032 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ken Sharp <ken.sharp@artifex.com> | ||
3 | Date: Fri, 24 Aug 2018 12:44:26 +0100 | ||
4 | Subject: [PATCH 4/5] Hide the .shfill operator | ||
5 | |||
6 | Commit 0b6cd1918e1ec4ffd087400a754a845180a4522b was supposed to make | ||
7 | the .shfill operator unobtainable, but I accidentally left a comment | ||
8 | in the line doing so. | ||
9 | |||
10 | Fix it here, without this the operator can still be exploited. | ||
11 | |||
12 | CVE: CVE-2018-15909 | ||
13 | Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] | ||
14 | |||
15 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
16 | --- | ||
17 | Resource/Init/gs_init.ps | 2 +- | ||
18 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
19 | |||
20 | diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps | ||
21 | index 1956ed5..955b843 100644 | ||
22 | --- a/Resource/Init/gs_init.ps | ||
23 | +++ b/Resource/Init/gs_init.ps | ||
24 | @@ -2182,7 +2182,7 @@ SAFER { .setsafeglobal } if | ||
25 | /.oserrno /.setoserrno /.oserrorstring /.getCPSImode | ||
26 | /.getscanconverter /.setscanconverter /.type1encrypt /.type1decrypt/.languagelevel /.setlanguagelevel /.eqproc /.fillpage /.buildpattern1 /.saslprep | ||
27 | /.buildshading1 /.buildshading2 /.buildshading3 /.buildshading4 /.buildshading5 /.buildshading6 /.buildshading7 /.buildshadingpattern | ||
28 | -%/.shfill /.argindex /.bytestring /.namestring /.stringbreak /.stringmatch /.globalvmarray /.globalvmdict /.globalvmpackedarray /.globalvmstring | ||
29 | +/.shfill /.argindex /.bytestring /.namestring /.stringbreak /.stringmatch /.globalvmarray /.globalvmdict /.globalvmpackedarray /.globalvmstring | ||
30 | /.localvmarray /.localvmdict /.localvmpackedarray /.localvmstring /.systemvmarray /.systemvmdict /.systemvmpackedarray /.systemvmstring /.systemvmfile /.systemvmlibfile | ||
31 | /.systemvmSFD /.settrapparams /.currentsystemparams /.currentuserparams /.getsystemparam /.getuserparam /.setsystemparams /.setuserparams | ||
32 | /.checkpassword /.locale_to_utf8 /.currentglobal /.gcheck /.imagepath | ||
33 | -- | ||
34 | 2.8.1 | ||
35 | |||
diff --git a/meta/recipes-extended/ghostscript/ghostscript/0005-Bug-699657-properly-apply-file-permissions-to-.tempf.patch b/meta/recipes-extended/ghostscript/ghostscript/0005-Bug-699657-properly-apply-file-permissions-to-.tempf.patch deleted file mode 100644 index ccd40216c0..0000000000 --- a/meta/recipes-extended/ghostscript/ghostscript/0005-Bug-699657-properly-apply-file-permissions-to-.tempf.patch +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | From f4f50ceea8e8852b8c3ac73f5807d8b54b735c3e Mon Sep 17 00:00:00 2001 | ||
2 | From: Chris Liddell <chris.liddell@artifex.com> | ||
3 | Date: Tue, 21 Aug 2018 20:17:05 +0100 | ||
4 | Subject: [PATCH 5/5] Bug 699657: properly apply file permissions to .tempfile | ||
5 | |||
6 | CVE: CVE-2018-15908 | ||
7 | Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] | ||
8 | |||
9 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
10 | --- | ||
11 | psi/zfile.c | 20 ++++++++++++++++++-- | ||
12 | 1 file changed, 18 insertions(+), 2 deletions(-) | ||
13 | |||
14 | diff --git a/psi/zfile.c b/psi/zfile.c | ||
15 | index a0acd5a..19996b0 100644 | ||
16 | --- a/psi/zfile.c | ||
17 | +++ b/psi/zfile.c | ||
18 | @@ -134,7 +134,7 @@ check_file_permissions_reduced(i_ctx_t *i_ctx_p, const char *fname, int len, | ||
19 | /* we're protecting arbitrary file system accesses, not Postscript device accesses. | ||
20 | * Although, note that %pipe% is explicitly checked for and disallowed elsewhere | ||
21 | */ | ||
22 | - if (iodev != iodev_default(imemory)) { | ||
23 | + if (iodev && iodev != iodev_default(imemory)) { | ||
24 | return 0; | ||
25 | } | ||
26 | |||
27 | @@ -734,7 +734,23 @@ ztempfile(i_ctx_t *i_ctx_p) | ||
28 | } | ||
29 | |||
30 | if (gp_file_name_is_absolute(pstr, strlen(pstr))) { | ||
31 | - if (check_file_permissions(i_ctx_p, pstr, strlen(pstr), | ||
32 | + int plen = strlen(pstr); | ||
33 | + const char *sep = gp_file_name_separator(); | ||
34 | +#ifdef DEBUG | ||
35 | + int seplen = strlen(sep); | ||
36 | + if (seplen != 1) | ||
37 | + return_error(gs_error_Fatal); | ||
38 | +#endif | ||
39 | + /* strip off the file name prefix, leave just the directory name | ||
40 | + * so we can check if we are allowed to write to it | ||
41 | + */ | ||
42 | + for ( ; plen >=0; plen--) { | ||
43 | + if (pstr[plen] == sep[0]) | ||
44 | + break; | ||
45 | + } | ||
46 | + memcpy(fname, pstr, plen); | ||
47 | + fname[plen] = '\0'; | ||
48 | + if (check_file_permissions(i_ctx_p, fname, strlen(fname), | ||
49 | NULL, "PermitFileWriting") < 0) { | ||
50 | code = gs_note_error(gs_error_invalidfileaccess); | ||
51 | goto done; | ||
52 | -- | ||
53 | 2.8.1 | ||
54 | |||
diff --git a/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-native-fix-disable-system-libtiff.patch b/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-native-fix-disable-system-libtiff.patch index 9f2df0cc8f..a382c7f891 100644 --- a/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-native-fix-disable-system-libtiff.patch +++ b/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-native-fix-disable-system-libtiff.patch | |||
@@ -11,9 +11,10 @@ Upstream-Status: Pending | |||
11 | 11 | ||
12 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 12 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
13 | 13 | ||
14 | Rebase to ghostscript 9.23. | 14 | Rebase to ghostscript 9.25. |
15 | 15 | ||
16 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 16 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
17 | Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> | ||
17 | --- | 18 | --- |
18 | configure.ac | 5 +++++ | 19 | configure.ac | 5 +++++ |
19 | 1 file changed, 5 insertions(+) | 20 | 1 file changed, 5 insertions(+) |
@@ -22,15 +23,15 @@ diff --git a/configure.ac b/configure.ac | |||
22 | index 80a60b1..f3e9efb 100644 | 23 | index 80a60b1..f3e9efb 100644 |
23 | --- a/configure.ac | 24 | --- a/configure.ac |
24 | +++ b/configure.ac | 25 | +++ b/configure.ac |
25 | @@ -1284,6 +1284,7 @@ case "x$with_system_libtiff" in | 26 | @@ -1319,6 +1319,7 @@ AC_TRY_COMPILE([], [return 0;], |
26 | esac | 27 | CFLAGS=$CGLAGS_STORE |
27 | 28 | ||
28 | if test x"$SHARE_LIBTIFF" = x"0" ; then | 29 | if test x"$SHARE_LIBTIFF" = x"0" ; then |
29 | + if test -e $LIBTIFFDIR/configure; then | 30 | + if test -e $LIBTIFFDIR/configure; then |
30 | echo "Running libtiff configure script..." | 31 | echo "Running libtiff configure script..." |
31 | olddir=`pwd` | 32 | olddir=`pwd` |
32 | if ! test -d "$LIBTIFFCONFDIR" ; then | 33 | if ! test -d "$LIBTIFFCONFDIR" ; then |
33 | @@ -1302,6 +1303,10 @@ if test x"$SHARE_LIBTIFF" = x"0" ; then | 34 | @@ -1337,6 +1338,10 @@ if test x"$SHARE_LIBTIFF" = x"0" ; then |
34 | 35 | ||
35 | echo | 36 | echo |
36 | echo "Continuing with Ghostscript configuration..." | 37 | echo "Continuing with Ghostscript configuration..." |
diff --git a/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-prevent_recompiling.patch b/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-prevent_recompiling.patch index e39d23d467..c76915fb81 100644 --- a/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-prevent_recompiling.patch +++ b/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.21-prevent_recompiling.patch | |||
@@ -11,8 +11,9 @@ Upstream-Status: Pending | |||
11 | Signed-off-by: Kang Kai <kai.kang@windriver.com> | 11 | Signed-off-by: Kang Kai <kai.kang@windriver.com> |
12 | Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> | 12 | Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> |
13 | 13 | ||
14 | Rebase to 9.23 | 14 | Rebase to 9.25 |
15 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 15 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
16 | Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> | ||
16 | --- | 17 | --- |
17 | base/unix-aux.mak | 44 -------------------------------------------- | 18 | base/unix-aux.mak | 44 -------------------------------------------- |
18 | 1 file changed, 44 deletions(-) | 19 | 1 file changed, 44 deletions(-) |
@@ -21,9 +22,9 @@ diff --git a/base/unix-aux.mak b/base/unix-aux.mak | |||
21 | index 5bf72e9..9cb39d7 100644 | 22 | index 5bf72e9..9cb39d7 100644 |
22 | --- a/base/unix-aux.mak | 23 | --- a/base/unix-aux.mak |
23 | +++ b/base/unix-aux.mak | 24 | +++ b/base/unix-aux.mak |
24 | @@ -64,50 +64,6 @@ $(GLOBJ)gp_sysv.$(OBJ): $(GLSRC)gp_sysv.c $(stdio__h) $(time__h) $(AK)\ | 25 | @@ -54,50 +54,6 @@ $(AUX)gp_stdia.$(OBJ): $(GLSRC)gp_stdia. |
25 | $(UNIX_AUX_MAK) $(MAKEDIRS) | 26 | $(stdio__h) $(time__h) $(unistd__h) $(gx_h) $(gp_h) $(UNIX_AUX_MAK) $(MAKEDIRS) |
26 | $(GLCC) $(GLO_)gp_sysv.$(OBJ) $(C_) $(GLSRC)gp_sysv.c | 27 | $(GLCCAUX) $(AUXO_)gp_stdia.$(OBJ) $(C_) $(GLSRC)gp_stdia.c |
27 | 28 | ||
28 | -# -------------------------- Auxiliary programs --------------------------- # | 29 | -# -------------------------- Auxiliary programs --------------------------- # |
29 | - | 30 | - |
diff --git a/meta/recipes-extended/ghostscript/ghostscript/remove-direct-symlink.patch b/meta/recipes-extended/ghostscript/ghostscript/remove-direct-symlink.patch deleted file mode 100644 index 410004e8f4..0000000000 --- a/meta/recipes-extended/ghostscript/ghostscript/remove-direct-symlink.patch +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | From 2ce79942ca509663ddf8171f45d1d324bb71bad6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | ||
3 | Date: Thu, 29 Mar 2018 17:22:35 +0800 | ||
4 | Subject: [PATCH] remove direct symlink | ||
5 | |||
6 | The upstream create a direct symlink to stay backward | ||
7 | compatible, a symlink is automatically created to point | ||
8 | from the old location (/usr/share/ghostscript/<version>/doc) | ||
9 | to the new location. | ||
10 | |||
11 | It caused do_populate_sysroot failure | ||
12 | ... | ||
13 | |ERROR: ghostscript-9.23-r0 do_populate_sysroot: sstate found an absolute | ||
14 | path symlink | ||
15 | ... | ||
16 | |||
17 | Without the symlink is no harm for OE | ||
18 | |||
19 | Upstream-Status: Inappropriate [OE specific] | ||
20 | |||
21 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
22 | --- | ||
23 | base/unixinst.mak | 1 - | ||
24 | 1 file changed, 1 deletion(-) | ||
25 | |||
26 | diff --git a/base/unixinst.mak b/base/unixinst.mak | ||
27 | index 7fec86c..0cf2361 100644 | ||
28 | --- a/base/unixinst.mak | ||
29 | +++ b/base/unixinst.mak | ||
30 | @@ -165,7 +165,6 @@ install-doc: $(PSDOCDIR)/News.htm | ||
31 | $(SH) -c 'for f in $(DOC_PAGES) ;\ | ||
32 | do if ( test -f $(PSDOCDIR)/$$f ); then $(INSTALL_DATA) $(PSDOCDIR)/$$f $(DESTDIR)$(docdir); fi;\ | ||
33 | done' | ||
34 | - ln -s $(DESTDIR)$(docdir) $(DESTDIR)$(gsdatadir)/doc | ||
35 | |||
36 | # install the man pages for each locale | ||
37 | MAN_LCDIRS=. de | ||
38 | -- | ||
39 | 1.8.3.1 | ||
40 | |||
diff --git a/meta/recipes-extended/ghostscript/ghostscript_9.23.bb b/meta/recipes-extended/ghostscript/ghostscript_9.25.bb index 898b6cd985..35eaaeb2fa 100644 --- a/meta/recipes-extended/ghostscript/ghostscript_9.23.bb +++ b/meta/recipes-extended/ghostscript/ghostscript_9.25.bb | |||
@@ -19,18 +19,12 @@ DEPENDS_class-native = "libpng-native" | |||
19 | UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases" | 19 | UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases" |
20 | UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" | 20 | UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" |
21 | 21 | ||
22 | SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923/${BPN}-${PV}.tar.gz \ | 22 | SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs925/${BPN}-${PV}.tar.gz \ |
23 | file://ghostscript-9.15-parallel-make.patch \ | 23 | file://ghostscript-9.15-parallel-make.patch \ |
24 | file://ghostscript-9.16-Werror-return-type.patch \ | 24 | file://ghostscript-9.16-Werror-return-type.patch \ |
25 | file://do-not-check-local-libpng-source.patch \ | 25 | file://do-not-check-local-libpng-source.patch \ |
26 | file://avoid-host-contamination.patch \ | 26 | file://avoid-host-contamination.patch \ |
27 | file://mkdir-p.patch \ | 27 | file://mkdir-p.patch \ |
28 | file://remove-direct-symlink.patch \ | ||
29 | file://0001-Bug-699665-memory-corruption-in-aesdecode.patch \ | ||
30 | file://0002-Bug-699656-Handle-LockDistillerParams-not-being-a-bo.patch \ | ||
31 | file://0003-Fix-Bug-699660-shading_param-incomplete-type-checkin.patch \ | ||
32 | file://0004-Hide-the-.shfill-operator.patch \ | ||
33 | file://0005-Bug-699657-properly-apply-file-permissions-to-.tempf.patch \ | ||
34 | " | 28 | " |
35 | 29 | ||
36 | SRC_URI = "${SRC_URI_BASE} \ | 30 | SRC_URI = "${SRC_URI_BASE} \ |
@@ -38,7 +32,6 @@ SRC_URI = "${SRC_URI_BASE} \ | |||
38 | file://ghostscript-9.02-genarch.patch \ | 32 | file://ghostscript-9.02-genarch.patch \ |
39 | file://objarch.h \ | 33 | file://objarch.h \ |
40 | file://cups-no-gcrypt.patch \ | 34 | file://cups-no-gcrypt.patch \ |
41 | file://0001-pdfwrite-Guard-against-trying-to-output-an-infinite-.patch \ | ||
42 | " | 35 | " |
43 | 36 | ||
44 | SRC_URI_class-native = "${SRC_URI_BASE} \ | 37 | SRC_URI_class-native = "${SRC_URI_BASE} \ |
@@ -46,8 +39,8 @@ SRC_URI_class-native = "${SRC_URI_BASE} \ | |||
46 | file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \ | 39 | file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \ |
47 | " | 40 | " |
48 | 41 | ||
49 | SRC_URI[md5sum] = "5a47ab47cd22dec1eb5f51c06f1c9d9c" | 42 | SRC_URI[md5sum] = "eebd0fadbfa8e800094422ce65e94d5d" |
50 | SRC_URI[sha256sum] = "f65964807a3c97a2c0810d4b9806585367e73129e57ae33378cea18e07a1ed9b" | 43 | SRC_URI[sha256sum] = "baafa64740b090bff50b220a6df3be95c46069b7e30f4b4effed28316e5b2389" |
51 | 44 | ||
52 | # Put something like | 45 | # Put something like |
53 | # | 46 | # |