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

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