Blame SOURCES/cups-str4591.patch

5e7041
diff -up cups-1.6.3/scheduler/conf.c.str4591 cups-1.6.3/scheduler/conf.c
5e7041
--- cups-1.6.3/scheduler/conf.c.str4591	2015-06-23 14:05:39.874805401 +0100
5e7041
+++ cups-1.6.3/scheduler/conf.c	2015-06-23 14:10:38.364395201 +0100
5e7041
@@ -1245,6 +1245,19 @@ cupsdReadConfiguration(void)
5e7041
 
5e7041
   cupsdUpdateEnv();
5e7041
 
5e7041
+  /*
5e7041
+   * Validate the default error policy...
5e7041
+   */
5e7041
+
5e7041
+  if (strcmp(ErrorPolicy, "retry-current-job") &&
5e7041
+      strcmp(ErrorPolicy, "abort-job") &&
5e7041
+      strcmp(ErrorPolicy, "retry-job") &&
5e7041
+      strcmp(ErrorPolicy, "stop-printer"))
5e7041
+  {
5e7041
+    cupsdLogMessage(CUPSD_LOG_ALERT, "Invalid ErrorPolicy \"%s\", resetting to \"stop-printer\".", ErrorPolicy);
5e7041
+    cupsdSetString(&ErrorPolicy, "stop-printer");
5e7041
+  }
5e7041
+
5e7041
  /*
5e7041
   * Update default paper size setting as needed...
5e7041
   */
5e7041
diff -up cups-1.6.3/scheduler/printers.c.str4591 cups-1.6.3/scheduler/printers.c
5e7041
--- cups-1.6.3/scheduler/printers.c.str4591	2015-06-23 14:04:45.301229731 +0100
5e7041
+++ cups-1.6.3/scheduler/printers.c	2015-06-23 14:10:52.717276314 +0100
5e7041
@@ -3,7 +3,7 @@
5e7041
  *
5e7041
  *   Printer routines for the CUPS scheduler.
5e7041
  *
5e7041
- *   Copyright 2007-2012 by Apple Inc.
5e7041
+ *   Copyright 2007-2015 by Apple Inc.
5e7041
  *   Copyright 1997-2007 by Easy Software Products, all rights reserved.
5e7041
  *
5e7041
  *   These coded instructions, statements, and computer programs are the
5e7041
@@ -1303,10 +1303,17 @@ cupsdLoadAllPrinters(void)
5e7041
     else if (!_cups_strcasecmp(line, "ErrorPolicy"))
5e7041
     {
5e7041
       if (value)
5e7041
-        cupsdSetString(&p->error_policy, value);
5e7041
+      {
5e7041
+	if (strcmp(value, "retry-current-job") &&
5e7041
+	    strcmp(value, "abort-job") &&
5e7041
+	    strcmp(value, "retry-job") &&
5e7041
+	    strcmp(value, "stop-printer"))
5e7041
+	  cupsdLogMessage(CUPSD_LOG_ALERT, "Invalid ErrorPolicy \"%s\" on line %d or printers.conf.", ErrorPolicy, linenum);
5e7041
+	else
5e7041
+	  cupsdSetString(&p->error_policy, value);
5e7041
+      }
5e7041
       else
5e7041
-	cupsdLogMessage(CUPSD_LOG_ERROR,
5e7041
-	                "Syntax error on line %d of printers.conf.", linenum);
5e7041
+	cupsdLogMessage(CUPSD_LOG_ERROR, "Syntax error on line %d of printers.conf.", linenum);
5e7041
     }
5e7041
     else if (!_cups_strcasecmp(line, "Attribute") && value)
5e7041
     {