diff options
Diffstat (limited to 'meta/recipes-extended/ghostscript')
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 | # |
