specfile: additional ZER0-DAY fixes for 9.24 added

This commit is contained in:
David Kaspar [Dee'Kej] 2018-09-05 16:01:50 +02:00
parent 29cc6ac9b1
commit 4d1ffc12fb
3 changed files with 123 additions and 0 deletions

View File

@ -0,0 +1,79 @@
From bc3df0773fccf4b4906a3e59652ad646ea0fee91 Mon Sep 17 00:00:00 2001
From: Chris Liddell <chris.liddell@artifex.com>
Date: Tue, 4 Sep 2018 17:01:08 +0100
Subject: [PATCH] For ICC profile validation, have cups id iteself as DeviceN
Give the range of color spaces and models that cups supports, we can't
reasonably provide (or expect others to provide) output ICC profiles for all
cases.
For the purpose of profile validation, have it claim to be DeviceN and benefit
from the extra tolerance in profiles allowed for that class of device.
---
cups/gdevcups.c | 15 ++++++++++++++-
devices/devs.mak | 2 +-
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/cups/gdevcups.c b/cups/gdevcups.c
index c1574f860..decd8eb35 100644
--- a/cups/gdevcups.c
+++ b/cups/gdevcups.c
@@ -70,6 +70,7 @@
#include "std.h" /* to stop stdlib.h redefining types */
#include "gdevprn.h"
#include "gsparam.h"
+#include "gxdevsop.h"
#include "arch.h"
#include "gsicc_manage.h"
@@ -252,6 +253,7 @@ private int cups_put_params(gx_device *, gs_param_list *);
private int cups_set_color_info(gx_device *);
private dev_proc_sync_output(cups_sync_output);
private prn_dev_proc_get_space_params(cups_get_space_params);
+private int cups_spec_op(gx_device *dev_, int op, void *data, int datasize);
#ifdef dev_t_proc_encode_color
private cm_map_proc_gray(cups_map_gray);
@@ -392,7 +394,7 @@ private gx_device_procs cups_procs =
NULL, /* push_transparency_state */
NULL, /* pop_transparency_state */
NULL, /* put_image */
-
+ cups_spec_op
};
#define prn_device_body_copies(dtype, procs, dname, w10, h10, xdpi, ydpi, lo, to, lm, bm, rm, tm, ncomp, depth, mg, mc, dg, dc, print_pages)\
@@ -5927,6 +5929,17 @@ cups_print_planar(gx_device_printer *pdev,
return (0);
}
+private int
+cups_spec_op(gx_device *dev_, int op, void *data, int datasize)
+{
+ /* Although not strictly DeviceN, the range of color models
+ this device supports presets similar issues.
+ */
+ if (op == gxdso_supports_devn) {
+ return true;
+ }
+ return gx_default_dev_spec_op(dev_, op, data, datasize);
+}
/*
*/
diff --git a/devices/devs.mak b/devices/devs.mak
index c85604cc0..e8654e566 100644
--- a/devices/devs.mak
+++ b/devices/devs.mak
@@ -1860,7 +1860,7 @@ $(DD)pwgraster.dev : $(lcups_dev) $(lcupsi_dev) $(cups_) $(GDEV) \
$(ADDMOD) $(DD)pwgraster -include $(lcups_dev)
$(ADDMOD) $(DD)pwgraster -include $(lcupsi_dev)
-$(DEVOBJ)gdevcups.$(OBJ) : $(LCUPSSRCDIR)$(D)gdevcups.c $(std_h) $(DEVS_MAK) $(MAKEDIRS)
+$(DEVOBJ)gdevcups.$(OBJ) : $(LCUPSSRCDIR)$(D)gdevcups.c $(std_h) $(gxdevsop_h) $(DEVS_MAK) $(MAKEDIRS)
$(CUPS_CC) $(DEVO_)gdevcups.$(OBJ) $(C_) $(CFLAGS) $(CUPSCFLAGS) \
$(I_)$(GLSRC) \
$(I_)$(DEVSRC) \
--
2.14.4

View File

@ -0,0 +1,41 @@
From 5812b1b78fc4d36fdc293b7859de69241140d590 Mon Sep 17 00:00:00 2001
From: Chris Liddell <chris.liddell@artifex.com>
Date: Tue, 4 Sep 2018 23:18:46 +0100
Subject: [PATCH] Bug 699714: retain .LockSafetyParams through failed
.installpagedevice
In the event that the .trysetparams fails during .installpagedevice, catch the
error, and ensure that at least the .LockSafetyParams is set.
---
Resource/Init/gs_setpd.ps | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps
index bba3c8c0e..aee96149e 100644
--- a/Resource/Init/gs_setpd.ps
+++ b/Resource/Init/gs_setpd.ps
@@ -95,12 +95,19 @@ level2dict begin
{ % Since setpagedevice doesn't create new device objects,
% we must (carefully) reinstall the old parameters in
% the same device.
- .currentpagedevice pop //null currentdevice //null .trysetparams
+ .currentpagedevice pop //null currentdevice //null
+ {.trysetparams} .internalstopped
+ {
+ //null
+ } if
dup type /booleantype eq
{ pop pop }
- { % This should never happen!
+ {
SETPDDEBUG { (Error in .trysetparams!) = pstack flush } if
cleartomark pop pop pop
+ % if resetting the entire device state failed, at least put back the se
+ currentdevice //null //false mark /.LockSafetyParams .currentpagedevice pop
+ /.LockSafetyParams .knownget not {//false} if .putdeviceparamsonly
/.installpagedevice cvx /rangecheck signalerror
}
ifelse pop pop
--
2.14.4

View File

@ -93,6 +93,8 @@ BuildRequires: libXt-devel
# Upstream patches -- official upstream patches released by upstream since the
# ---------------- last rebase that are necessary for any reason:
#Patch000: example000.patch
Patch000: ghostscript-9.24-000-let-CUPS-id-itself-as-DeviceN.patch
Patch001: ghostscript-9.24-001-retain-LockSafetyParams.patch
# Downstream patches -- these should be always included when doing rebase:
@ -463,6 +465,7 @@ done
%changelog
* Wed Sep 05 2018 David Kaspar [Dee'Kej] <dkaspar@redhat.com> - 9.24-1
- rebase to latest upstream version, which contains important CVE fixes
- additional ZER0-DAY fixes added
* Wed Aug 29 2018 David Kaspar [Dee'Kej] <dkaspar@redhat.com> - 9.23-7
- ghostscript-9.23-002-fixes-for-set-of-CVEs-reported-by-Google.patch added