components/cups/patches/18104362.patch
author Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
Fri, 31 Jul 2015 02:20:49 -0700
changeset 4724 7b96ca49258f
permissions -rw-r--r--
18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4724
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     1
/*-------------------------------------------------------------------------------------------------
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     2
This patch is taken from the community.
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     3
Details can be found at https://www.cups.org/str.php?L4627
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     4
---------------------------------------------------------------------------------------------------*/
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     5
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     6
--- ppdc/ppdpo.cxx	2009-04-03 10:35:17.000000000 -0700
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     7
+++ ppdc/ppdpo.cxx	2015-05-18 02:34:42.016321242 -0700
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     8
@@ -58,7 +58,7 @@
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
     9
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    10
   // Scan the command-line...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    11
   catalog = new ppdcCatalog("en");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    12
-  src     = 0;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    13
+  src     = new ppdcSource();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    14
   verbose = 0;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    15
   outfile = 0;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    16
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    17
@@ -123,24 +123,26 @@
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    18
 	                _("ppdc: Loading driver information file \"%s\"...\n"),
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    19
 			argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    20
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    21
-      src = new ppdcSource(argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    22
-
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    23
-      // Add UI strings...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    24
-      for (d = (ppdcDriver *)src->drivers->first();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    25
-           d;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    26
-	   d = (ppdcDriver *)src->drivers->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    27
-      {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    28
-	if (verbose)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    29
-	  _cupsLangPrintf(stderr,
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    30
-	                  _("ppdc: Adding/updating UI text from %s...\n"),
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    31
-			  argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    32
-
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    33
-        add_ui_strings(d, catalog);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    34
-      }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    35
+	src->read_file(argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    36
+    }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    37
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    38
-      // Delete the printer driver information...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    39
-      src->release();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    40
+    // If no drivers have been loaded, display the program usage message.
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    41
+  if ((d = (ppdcDriver *)src->drivers->first()) != NULL)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    42
+  {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    43
+    // Add UI strings...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    44
+    while (d != NULL)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    45
+    {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    46
+      if (verbose)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    47
+	_cupsLangPrintf(stderr, _("ppdc: Adding/updating UI text from %s."), argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    48
+      add_ui_strings(d, catalog);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    49
+      d = (ppdcDriver *)src->drivers->next();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    50
     }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    51
+  }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    52
+  else
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    53
+     usage();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    54
+
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    55
+// Delete the printer driver information...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    56
+  src->release();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    57
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    58
   // Write the message catalog...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    59
   if (!outfile)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    60
@@ -150,10 +152,6 @@
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    61
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    62
   catalog->release();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    63
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    64
-  // If no drivers have been loaded, display the program usage message.
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    65
-  if (!src)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    66
-    usage();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    67
-
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    68
   // Return with no errors.
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    69
   return (0);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    70
 }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    71
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    72
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    73
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    74
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    75
--- ppdc/ppdhtml.cxx	2009-04-03 10:35:17.000000000 -0700
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    76
+++ ppdc/ppdhtml.cxx	2015-05-18 02:34:50.033654707 -0700
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    77
@@ -58,7 +58,7 @@
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    78
   _cupsSetLocale(argv);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    79
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    80
   // Scan the command-line...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    81
-  src = 0;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    82
+  src = new ppdcSource();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    83
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    84
   for (i = 1; i < argc; i ++)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    85
     if (argv[i][0] == '-')
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    86
@@ -97,67 +97,75 @@
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    87
     else
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    88
     {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    89
       // Open and load the driver info file...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    90
-      src = new ppdcSource(argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    91
+      src->read_file(argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    92
+    }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    93
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    94
+      if ((d = (ppdcDriver *)src->drivers->first()) != NULL)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    95
+    {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    96
       // Create a composite group with all of the features from the
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    97
       // drivers in the info file...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    98
       composite = new ppdcGroup("", "");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
    99
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   100
-      for (d = (ppdcDriver *)src->drivers->first(); d; d = (ppdcDriver *)src->drivers->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   101
-        for (g = (ppdcGroup *)d->groups->first(); g; g = (ppdcGroup *)d->groups->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   102
-	  for (o = (ppdcOption *)g->options->first(); o; o = (ppdcOption *)g->options->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   103
-	  {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   104
-	    if ((compo = composite->find_option(o->name->value)) == NULL)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   105
-	      composite->add_option(new ppdcOption(o));
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   106
-	  }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   107
-
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   108
-      puts("<html>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   109
-      printf("<head><title>Driver Summary for %s</title></head>\n", argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   110
-      printf("<body><h1>Driver Summary for %s</h1>\n", argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   111
-      printf("<p><table border='1'><thead><tr><th>Printer</th><th>Media Size</th>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   112
-      for (compo = (ppdcOption *)composite->options->first(); compo; compo = (ppdcOption *)composite->options->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   113
-        printf("<th>%s</th>", compo->text->value);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   114
-      puts("</tr></thead><tbody>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   115
-
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   116
-      // Write HTML summary...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   117
-      for (d = (ppdcDriver *)src->drivers->first(); d; d = (ppdcDriver *)src->drivers->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   118
-      {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   119
-        // Write the summary for this driver...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   120
-	printf("<tr valign='top'><td nowrap>%s</td><td nowrap>", d->model_name->value);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   121
-	for (size = (ppdcMediaSize *)d->sizes->first(); size;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   122
-	     size = (ppdcMediaSize *)d->sizes->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   123
-          printf("%s<br>", size->text->value);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   124
-        printf("</td>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   125
-
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   126
-        for (compo = (ppdcOption *)composite->options->first(); compo;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   127
-	     compo = (ppdcOption *)composite->options->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   128
-	  if ((o = d->find_option(compo->name->value)) != NULL)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   129
-	  {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   130
-	    printf("<td nowrap>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   131
-	    for (c = (ppdcChoice *)o->choices->first(); c;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   132
-	         c = (ppdcChoice *)o->choices->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   133
-	      printf("%s<br>", c->text->value);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   134
-	    printf("</td>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   135
-	  }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   136
-	  else
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   137
-	    printf("<td>N/A</td>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   138
-
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   139
-        puts("</tr>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   140
-      }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   141
-
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   142
-      puts("</tbody></table></p>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   143
-      puts("</body>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   144
-      puts("</html>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   145
-      // Delete the printer driver information...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   146
-      composite->release();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   147
-      src->release();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   148
+    while (d != NULL)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   149
+    {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   150
+      for (g = (ppdcGroup *)d->groups->first(); g; g = (ppdcGroup *)d->groups->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   151
+	for (o = (ppdcOption *)g->options->first(); o; o = (ppdcOption *)g->options->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   152
+	{
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   153
+	  if ((compo = composite->find_option(o->name->value)) == NULL)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   154
+	    composite->add_option(new ppdcOption(o));
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   155
+	}
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   156
+        d = (ppdcDriver *)src->drivers->next();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   157
     }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   158
+    puts("<html>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   159
+    printf("<head><title>Driver Summary for %s</title></head>\n", argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   160
+    printf("<body><h1>Driver Summary for %s</h1>\n", argv[i]);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   161
+    printf("<p><table border='1'><thead><tr><th>Printer</th><th>Media Size</th>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   162
+    for (compo = (ppdcOption *)composite->options->first(); compo; compo = (ppdcOption *)composite->options->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   163
+      printf("<th>%s</th>", compo->text->value);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   164
+    puts("</tr></thead><tbody>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   165
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   166
-  // If no drivers have been loaded, display the program usage message.
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   167
-  if (!src)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   168
+    // Write HTML summary...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   169
+    for (d = (ppdcDriver *)src->drivers->first(); d; d = (ppdcDriver *)src->drivers->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   170
+    {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   171
+      // Write the summary for this driver...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   172
+      printf("<tr valign='top'><td nowrap>%s</td><td nowrap>", d->model_name->value);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   173
+      for (size = (ppdcMediaSize *)d->sizes->first(); size;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   174
+	   size = (ppdcMediaSize *)d->sizes->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   175
+	printf("%s<br>", size->text->value);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   176
+      printf("</td>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   177
+      
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   178
+      for (compo = (ppdcOption *)composite->options->first(); compo;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   179
+	   compo = (ppdcOption *)composite->options->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   180
+	if ((o = d->find_option(compo->name->value)) != NULL)
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   181
+	{
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   182
+	  printf("<td nowrap>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   183
+	  for (c = (ppdcChoice *)o->choices->first(); c;
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   184
+	       c = (ppdcChoice *)o->choices->next())
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   185
+	    printf("%s<br>", c->text->value);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   186
+	  printf("</td>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   187
+	}
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   188
+	else
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   189
+	  printf("<td>N/A</td>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   190
+
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   191
+      puts("</tr>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   192
+     }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   193
+
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   194
+     puts("</tbody></table></p>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   195
+    puts("</body>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   196
+    puts("</html>");
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   197
+
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   198
+    // Delete the printer driver information...
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   199
+    composite->release();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   200
+  }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   201
+  else
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   202
+  {
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   203
+    // If no drivers have been loaded, display the program usage message.
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   204
     usage();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   205
+  }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   206
+
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   207
+  src->release();
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   208
 
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   209
-  // Return with no errors.
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   210
+// Return with no errors.
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   211
   return (0);
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   212
 }
7b96ca49258f 18104362 Both /usr/bin/ppdpo and /usr/bin/ppdhtml dump core with fuzz input
Vishwas Shekarappa Gudiyavar <vishwas.shekarappa.gudiyavar@oracle.com>
parents:
diff changeset
   213