Skip to content

Commit 12ce51b

Browse files
committed
Make sure xxx-default and xxx-supported string attributes are strings.
1 parent 5a22a9b commit 12ce51b

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

cups/ppd-cache.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3811,7 +3811,7 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */
38113811
}
38123812
}
38133813
}
3814-
else if ((attr = ippFindAttribute(supported, "media-supported", IPP_TAG_ZERO)) != NULL)
3814+
else if ((attr = ippFindAttribute(supported, "media-supported", IPP_TAG_ZERO)) != NULL && (ippGetValueTag(attr) == IPP_TAG_KEYWORD || ippGetValueTag(attr) == IPP_TAG_NAME || ippGetValueTag(attr) == IPP_TAG_NAMELANG))
38153815
{
38163816
for (i = 0, count = ippGetCount(attr); i < count; i ++)
38173817
{
@@ -3950,12 +3950,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */
39503950
* InputSlot...
39513951
*/
39523952

3953-
if ((attr = ippFindAttribute(ippGetCollection(defattr, 0), "media-source", IPP_TAG_ZERO)) != NULL)
3953+
if ((attr = ippFindAttribute(ippGetCollection(defattr, 0), "media-source", IPP_TAG_ZERO)) != NULL && (ippGetValueTag(attr) == IPP_TAG_KEYWORD || ippGetValueTag(attr) == IPP_TAG_NAME || ippGetValueTag(attr) == IPP_TAG_NAMELANG))
39543954
pwg_ppdize_name(ippGetString(attr, 0, NULL), ppdname, sizeof(ppdname));
39553955
else
39563956
ppdname[0] = '\0';
39573957

3958-
if ((attr = ippFindAttribute(supported, "media-source-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 1)
3958+
if ((attr = ippFindAttribute(supported, "media-source-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 1 && (ippGetValueTag(attr) == IPP_TAG_KEYWORD || ippGetValueTag(attr) == IPP_TAG_NAME || ippGetValueTag(attr) == IPP_TAG_NAMELANG))
39593959
{
39603960
int have_default = ppdname[0] != '\0';
39613961
/* Do we have a default InputSlot? */
@@ -4046,12 +4046,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */
40464046
* MediaType...
40474047
*/
40484048

4049-
if ((attr = ippFindAttribute(ippGetCollection(defattr, 0), "media-type", IPP_TAG_ZERO)) != NULL)
4049+
if ((attr = ippFindAttribute(ippGetCollection(defattr, 0), "media-type", IPP_TAG_ZERO)) != NULL && (ippGetValueTag(attr) == IPP_TAG_KEYWORD || ippGetValueTag(attr) == IPP_TAG_NAME || ippGetValueTag(attr) == IPP_TAG_NAMELANG))
40504050
pwg_ppdize_name(ippGetString(attr, 0, NULL), ppdname, sizeof(ppdname));
40514051
else
40524052
cupsCopyString(ppdname, "Unknown", sizeof(ppdname));
40534053

4054-
if ((attr = ippFindAttribute(supported, "media-type-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 1)
4054+
if ((attr = ippFindAttribute(supported, "media-type-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 1 && (ippGetValueTag(attr) == IPP_TAG_KEYWORD || ippGetValueTag(attr) == IPP_TAG_NAME || ippGetValueTag(attr) == IPP_TAG_NAMELANG))
40554055
{
40564056
cupsFilePrintf(fp, "*OpenUI *MediaType: PickOne\n"
40574057
"*OrderDependency: 10 AnySetup *MediaType\n"
@@ -4489,12 +4489,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */
44894489
* Output bin...
44904490
*/
44914491

4492-
if ((attr = ippFindAttribute(supported, "output-bin-default", IPP_TAG_ZERO)) != NULL)
4492+
if ((attr = ippFindAttribute(supported, "output-bin-default", IPP_TAG_ZERO)) != NULL && (ippGetValueTag(attr) == IPP_TAG_KEYWORD || ippGetValueTag(attr) == IPP_TAG_NAME || ippGetValueTag(attr) == IPP_TAG_NAMELANG))
44934493
pwg_ppdize_name(ippGetString(attr, 0, NULL), ppdname, sizeof(ppdname));
44944494
else
44954495
cupsCopyString(ppdname, "Unknown", sizeof(ppdname));
44964496

4497-
if ((attr = ippFindAttribute(supported, "output-bin-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 0)
4497+
if ((attr = ippFindAttribute(supported, "output-bin-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 0 && (ippGetValueTag(attr) == IPP_TAG_KEYWORD || ippGetValueTag(attr) == IPP_TAG_NAME || ippGetValueTag(attr) == IPP_TAG_NAMELANG))
44984498
{
44994499
ipp_attribute_t *trays = ippFindAttribute(supported, "printer-output-tray", IPP_TAG_STRING);
45004500
/* printer-output-tray attribute, if any */

0 commit comments

Comments
 (0)