[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