Blame SOURCES/ghostscript-cve-2019-14817.patch

38aaa9
diff --git a/Resource/Init/pdf_base.ps b/Resource/Init/pdf_base.ps
f706a9
index 1a218f4..cffde5c 100644
38aaa9
--- a/Resource/Init/pdf_base.ps
38aaa9
+++ b/Resource/Init/pdf_base.ps
f706a9
@@ -157,7 +157,7 @@ currentdict /num-chars-dict .undef
38aaa9
     {
38aaa9
       dup ==only () = flush
38aaa9
     } ifelse % PDFSTEP
38aaa9
-  } if % PDFDEBUG
38aaa9
+  } executeonly if % PDFDEBUG
38aaa9
   2 copy .knownget {
38aaa9
     exch pop exch pop exch pop exec
38aaa9
   } {
38aaa9
diff --git a/Resource/Init/pdf_draw.ps b/Resource/Init/pdf_draw.ps
f706a9
index e18a7c2..0a3924c 100644
38aaa9
--- a/Resource/Init/pdf_draw.ps
38aaa9
+++ b/Resource/Init/pdf_draw.ps
38aaa9
@@ -501,8 +501,8 @@ end
38aaa9
       (        Output may be incorrect.\n) pdfformaterror
38aaa9
       //pdfdict /.gs_warning_issued //true .forceput
38aaa9
       PDFSTOPONERROR { /gs /undefined signalerror } if
38aaa9
-    } if
38aaa9
-  }
38aaa9
+    } executeonly if
38aaa9
+  } executeonly
38aaa9
   ifelse
38aaa9
 } bind executeonly def
38aaa9
 
f706a9
@@ -1142,7 +1142,7 @@ currentdict end readonly def
38aaa9
           .setglobal
38aaa9
           pdfformaterror
38aaa9
         } executeonly ifelse
38aaa9
-      }
38aaa9
+      } executeonly
38aaa9
       {
38aaa9
         currentglobal //pdfdict gcheck .setglobal
38aaa9
         //pdfdict /.Qqwarning_issued //true .forceput
f706a9
@@ -1150,8 +1150,8 @@ currentdict end readonly def
38aaa9
         pdfformaterror
38aaa9
       } executeonly ifelse
38aaa9
       end
38aaa9
-    } ifelse
38aaa9
-  } loop
38aaa9
+    } executeonly ifelse
38aaa9
+  } executeonly loop
38aaa9
   {
38aaa9
     (\n   **** Error: File has unbalanced q/Q operators \(too many q's\)\n               Output may be incorrect.\n)
38aaa9
     //pdfdict /.Qqwarning_issued .knownget
f706a9
@@ -1165,14 +1165,14 @@ currentdict end readonly def
38aaa9
         .setglobal
38aaa9
         pdfformaterror
38aaa9
       } executeonly ifelse
38aaa9
-    }
38aaa9
+    } executeonly
38aaa9
     {
38aaa9
       currentglobal //pdfdict gcheck .setglobal
38aaa9
       //pdfdict /.Qqwarning_issued //true .forceput
38aaa9
       .setglobal
38aaa9
       pdfformaterror
38aaa9
     } executeonly ifelse
38aaa9
-  } if
38aaa9
+  } executeonly if
38aaa9
   pop
38aaa9
 
38aaa9
   % restore pdfemptycount
38aaa9
diff --git a/Resource/Init/pdf_font.ps b/Resource/Init/pdf_font.ps
f706a9
index 9fb85f6..357ba30 100644
38aaa9
--- a/Resource/Init/pdf_font.ps
38aaa9
+++ b/Resource/Init/pdf_font.ps
38aaa9
@@ -677,7 +677,7 @@ currentdict end readonly def
38aaa9
                 currentglobal 2 index dup gcheck setglobal
38aaa9
                 /FontInfo 5 dict dup 5 1 roll .forceput
38aaa9
                 setglobal
38aaa9
-              } if
38aaa9
+              } executeonly if
38aaa9
               dup /GlyphNames2Unicode .knownget not {
38aaa9
                 //true                        % No existing G2U, make one
38aaa9
               } {
38aaa9
@@ -701,9 +701,9 @@ currentdict end readonly def
38aaa9
         } if
38aaa9
         PDFDEBUG {
38aaa9
           (.processToUnicode end) =
38aaa9
-        } if
38aaa9
-      } if
38aaa9
-    } stopped
38aaa9
+        } executeonly if
38aaa9
+      } executeonly if
38aaa9
+    } executeonly stopped
38aaa9
     {
38aaa9
       .dstackdepth 1 countdictstack 1 sub
38aaa9
       {pop end} for
f706a9
@@ -1233,19 +1233,20 @@ currentdict /eexec_pdf_param_dict .undef
38aaa9
                 //pdfdict /.Qqwarning_issued //true .forceput
38aaa9
               } executeonly if
38aaa9
               Q
38aaa9
-            } repeat
38aaa9
+            } executeonly repeat
38aaa9
             Q
38aaa9
-          } PDFfile fileposition 2 .execn % Keep pdfcount valid.
38aaa9
+          } executeonly PDFfile fileposition 2 .execn % Keep pdfcount valid.
38aaa9
           PDFfile exch setfileposition
38aaa9
-        } ifelse
38aaa9
-      } {
38aaa9
+        } executeonly ifelse
38aaa9
+      } executeonly
38aaa9
+      {
38aaa9
         % PDF Type 3 fonts don't use .notdef
38aaa9
         % d1 implementation adjusts the width as needed
38aaa9
         0 0 0 0 0 0
38aaa9
         pdfopdict /d1 get exec
38aaa9
       } ifelse
38aaa9
       end end
38aaa9
-    } bdef
38aaa9
+    } executeonly bdef
38aaa9
     dup currentdict Encoding .processToUnicode
38aaa9
     currentdict end .completefont exch pop
38aaa9
 } bind executeonly odef
f706a9
@@ -2045,9 +2046,9 @@ currentdict /CMap_read_dict undef
38aaa9
           (Will continue, but content may be missing.) = flush
38aaa9
         } ifelse
38aaa9
       } if
38aaa9
-    } if
38aaa9
+    } executeonly if
38aaa9
     /findresource cvx /undefined signalerror
38aaa9
-  } loop
38aaa9
+  } executeonly loop
38aaa9
 } bind executeonly odef
38aaa9
 
38aaa9
 /buildCIDType0 {	% <CIDFontType0-font-resource> buildCIDType0 <font>
38aaa9
diff --git a/Resource/Init/pdf_main.ps b/Resource/Init/pdf_main.ps
f706a9
index 5305ea6..a59e63c 100644
38aaa9
--- a/Resource/Init/pdf_main.ps
38aaa9
+++ b/Resource/Init/pdf_main.ps
f706a9
@@ -2749,15 +2749,15 @@ currentdict /PDF2PS_matrix_key undef
38aaa9
           .setglobal
38aaa9
           pdfformaterror
38aaa9
         } executeonly ifelse
38aaa9
-      }
38aaa9
+      } executeonly
38aaa9
       {
38aaa9
         currentglobal //pdfdict gcheck .setglobal
38aaa9
         //pdfdict /.Qqwarning_issued //true .forceput
38aaa9
         .setglobal
38aaa9
         pdfformaterror
38aaa9
       } executeonly ifelse
38aaa9
-    } if
38aaa9
-  } if
38aaa9
+    } executeonly if
38aaa9
+  } executeonly if
38aaa9
   pop
38aaa9
   count PDFexecstackcount sub { pop } repeat
38aaa9
   (after exec) VMDEBUG
38aaa9
diff --git a/Resource/Init/pdf_ops.ps b/Resource/Init/pdf_ops.ps
f706a9
index 285e582..6c1f100 100644
38aaa9
--- a/Resource/Init/pdf_ops.ps
38aaa9
+++ b/Resource/Init/pdf_ops.ps
38aaa9
@@ -186,14 +186,14 @@ currentdict /gput_always_allow .undef
38aaa9
         .setglobal
38aaa9
         pdfformaterror
38aaa9
       } executeonly ifelse
38aaa9
-    }
38aaa9
+    } executeonly
38aaa9
     {
38aaa9
       currentglobal //pdfdict gcheck .setglobal
38aaa9
       //pdfdict /.Qqwarning_issued //true .forceput
38aaa9
       .setglobal
38aaa9
       pdfformaterror
38aaa9
     } executeonly ifelse
38aaa9
-  } if
38aaa9
+  } executeonly if
38aaa9
 } bind executeonly odef
38aaa9
 
38aaa9
 % Save PDF gstate
38aaa9
@@ -440,11 +440,12 @@ currentdict /gput_always_allow .undef
38aaa9
   dup type /booleantype eq {
38aaa9
     .currentSMask type /dicttype eq {
38aaa9
       .currentSMask /Processed 2 index .forceput
38aaa9
+    } executeonly
38aaa9
+    {
38aaa9
+      .setSMask
38aaa9
+    }ifelse
38aaa9
   } executeonly
38aaa9
   {
38aaa9
-      .setSMask
38aaa9
-  }ifelse
38aaa9
-  }{
38aaa9
   .setSMask
38aaa9
   }ifelse
38aaa9