From ba6dbd6e61dbb3cc6ee6db9dd3a4f70cc18f706e Mon Sep 17 00:00:00 2001 From: Nancy Durgin Date: Thu, 14 Feb 2019 10:09:00 -0800 Subject: [PATCH] Undef /odef in gs_init.ps Made a new temporary utility function in gs_cet.ps (.odef) to use instead of /odef. This makes it fine to undef odef with all the other operators in gs_init.ps This punts the bigger question of what to do with .makeoperator, but it doesn't make the situation any worse than it already was. CVE: CVE-2019-3835 Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git] Signed-off-by: Ovidiu Panait --- Resource/Init/gs_cet.ps | 10 ++++++++-- Resource/Init/gs_init.ps | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Resource/Init/gs_cet.ps b/Resource/Init/gs_cet.ps index 75534bb..dbc5c4e 100644 --- a/Resource/Init/gs_cet.ps +++ b/Resource/Init/gs_cet.ps @@ -1,6 +1,10 @@ %!PS % Set defaults for Ghostscript to match Adobe CPSI behaviour for CET +/.odef { % odef - + 1 index exch .makeoperator def +} bind def + systemdict /product get (PhotoPRINT SE 5.0v2) readonly eq { (%END GS_CET) .skipeof @@ -93,8 +97,8 @@ userdict /.smoothness currentsmoothness put } { /setsmoothness .systemvar /typecheck signalerror } ifelse -} bind odef -/currentsmoothness { userdict /.smoothness get } bind odef % for 09-55.PS, 09-57.PS . +} bind //.odef exec +/currentsmoothness { userdict /.smoothness get } bind //.odef exec % for 09-55.PS, 09-57.PS . % slightly nasty hack to give consistent cluster results /ofnfa systemdict /filenameforall get def @@ -113,6 +117,8 @@ userdict /.smoothness currentsmoothness put } ifelse ofnfa } bind def + +currentdict /.odef undef % end of slightly nasty hack to give consistent cluster results //false 0 startjob pop % re-enter encapsulated mode diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps index e6b9cd2..80d9585 100644 --- a/Resource/Init/gs_init.ps +++ b/Resource/Init/gs_init.ps @@ -2257,6 +2257,7 @@ SAFER { .setsafeglobal } if /.systemvmSFD /.settrapparams /.currentsystemparams /.currentuserparams /.getsystemparam /.getuserparam /.setsystemparams /.setuserparams /.checkpassword /.locale_to_utf8 /.currentglobal /.gcheck /.imagepath /.currentoutputdevice /.type /.writecvs /.setSMask /.currentSMask /.needinput /.countexecstack /.execstack /.applypolicies + /odef % Used by a free user in the Library of Congress. Apparently this is used to % draw a partial page, which is then filled in by the results of a barcode -- 2.18.1