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);