[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cups-bugs
Subject:    Re: [cups.bugs] [MOD] STR #2866: embedded space in cupsfilter
From:       Michael Sweet <msweet () apple ! com>
Date:       2008-07-12 16:45:21
Message-ID: 20080712164521.57BB53C68456 () dns ! easysw ! com
[Download RAW message or body]

[STR Closed w/Resolution]

Fixed in Subversion repository.

Link: http://www.cups.org/str.php?L2866
Version: 1.3-current
Fix Version: 1.4-current (r7723)
["str2866.patch" (text/plain)]

Index: systemv/cupstestppd.c
===================================================================
--- systemv/cupstestppd.c	(revision 7722)
+++ systemv/cupstestppd.c	(working copy)
@@ -1831,11 +1831,12 @@
 	      int        verbose,	/* I - Verbosity level */
 	      int        warn)		/* I - Warnings only? */
 {
+  int		i;			/* Looping var */
   ppd_attr_t	*attr;			/* PPD attribute */
   const char	*ptr;			/* Pointer into string */
   char		super[16],		/* Super-type for filter */
 		type[256],		/* Type for filter */
-		program[256],		/* Program/filter name */
+		program[1024],		/* Program/filter name */
 		pathprog[1024];		/* Complete path to program/filter */
   int		cost;			/* Cost of filter */
   const char	*prefix;		/* WARN/FAIL prefix */
@@ -1843,13 +1844,10 @@
 
   prefix = warn ? "  WARN  " : "**FAIL**";
 
-  for (attr = ppdFindAttr(ppd, "cupsFilter", NULL);
-       attr;
-       attr = ppdFindNextAttr(ppd, "cupsFilter", NULL))
+  for (i = 0; i < ppd->num_filters; i ++)
   {
-    if (!attr->value ||
-	sscanf(attr->value, "%15[^/]/%255s%d%255s", super, type, &cost,
-	       program) != 4)
+    if (sscanf(ppd->filters[i], "%15[^/]/%255s%d%*[ \t]%1023[^\n]", super, type,
+               &cost, program) != 4)
     {
       if (!warn && !errors && !verbose)
 	_cupsLangPuts(stdout, _(" FAIL\n"));
@@ -1857,7 +1855,7 @@
       if (verbose >= 0)
 	_cupsLangPrintf(stdout,
 			_("      %s  Bad cupsFilter value \"%s\"!\n"),
-			prefix, attr->value ? attr->value : "");
+			prefix, ppd->filters[i]);
 
       if (!warn)
         errors ++;
@@ -1899,8 +1897,8 @@
        attr = ppdFindNextAttr(ppd, "cupsPreFilter", NULL))
   {
     if (!attr->value ||
-	sscanf(attr->value, "%15[^/]/%255s%d%255s", super, type, &cost,
-	       program) != 4)
+	sscanf(attr->value, "%15[^/]/%255s%d%*[ \t]%1023[^\n]", super, type,
+	       &cost, program) != 4)
     {
       if (!warn && !errors && !verbose)
 	_cupsLangPuts(stdout, _(" FAIL\n"));
Index: scheduler/printers.c
===================================================================
--- scheduler/printers.c	(revision 7722)
+++ scheduler/printers.c	(working copy)
@@ -3825,7 +3825,8 @@
   *     super/type cost program
   */
 
-  if (sscanf(filter, "%15[^/]/%31s%d%1023s", super, type, &cost, program) != 4)
+  if (sscanf(filter, "%15[^/]/%31s%d%*[ \t]%1023[^\n]", super, type, &cost,
+             program) != 4)
   {
     cupsdLogMessage(CUPSD_LOG_ERROR, "%s: invalid filter string \"%s\"!",
                     p->name, filter);


_______________________________________________
cups-bugs mailing list
cups-bugs@easysw.com
http://lists.easysw.com/mailman/listinfo/cups-bugs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic