summaryrefslogtreecommitdiff
path: root/cups
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2019-10-15 17:05:55 -0400
committerMichael R Sweet <michael.r.sweet@gmail.com>2019-10-15 17:05:55 -0400
commit2a06655e5c1925f09d5a2e38cd073eb1b6f069ad (patch)
treefb467a31ac959458fa04761e3f1da63b9b94a953 /cups
parent692b157d0cd1c2a262635868d37f639f3fe9e70d (diff)
downloadcups-2a06655e5c1925f09d5a2e38cd073eb1b6f069ad.tar.gz
PPD files containing custom option keywords did not work (Issue #5639)
Diffstat (limited to 'cups')
-rw-r--r--cups/ppd.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/cups/ppd.c b/cups/ppd.c
index fae19c42e..ff52df2e1 100644
--- a/cups/ppd.c
+++ b/cups/ppd.c
@@ -1874,9 +1874,9 @@ _ppdOpen(
{
if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
{
- pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
-
- goto error;
+ char cname[PPD_MAX_NAME]; /* Rewrite with a leading underscore */
+ snprintf(cname, sizeof(cname), "_%s", name);
+ strlcpy(name, cname, sizeof(name));
}
if ((size = ppdPageSize(ppd, name)) == NULL)
@@ -1903,9 +1903,9 @@ _ppdOpen(
{
if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
{
- pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
-
- goto error;
+ char cname[PPD_MAX_NAME]; /* Rewrite with a leading underscore */
+ snprintf(cname, sizeof(cname), "_%s", name);
+ strlcpy(name, cname, sizeof(name));
}
if ((size = ppdPageSize(ppd, name)) == NULL)
@@ -1939,9 +1939,9 @@ _ppdOpen(
if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
{
- pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
-
- goto error;
+ char cname[PPD_MAX_NAME]; /* Rewrite with a leading underscore */
+ snprintf(cname, sizeof(cname), "_%s", name);
+ strlcpy(name, cname, sizeof(name));
}
if (!strcmp(keyword, "PageSize"))