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

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