Skip to content

Commit 2af52b6

Browse files
committed
Make sure xxx-default and xxx-supported string attributes are strings.
1 parent 34f7a22 commit 2af52b6

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

cups/ppd-cache.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3993,12 +3993,12 @@ _ppdCreateFromIPP2(
39933993
* InputSlot...
39943994
*/
39953995

3996-
if ((attr = ippFindAttribute(ippGetCollection(defattr, 0), "media-source", IPP_TAG_ZERO)) != NULL)
3996+
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))
39973997
pwg_ppdize_name(ippGetString(attr, 0, NULL), ppdname, sizeof(ppdname));
39983998
else
39993999
ppdname[0] = '\0';
40004000

4001-
if ((attr = ippFindAttribute(supported, "media-source-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 1)
4001+
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))
40024002
{
40034003
int have_default = ppdname[0] != '\0';
40044004
/* Do we have a default InputSlot? */
@@ -4089,12 +4089,12 @@ _ppdCreateFromIPP2(
40894089
* MediaType...
40904090
*/
40914091

4092-
if ((attr = ippFindAttribute(ippGetCollection(defattr, 0), "media-type", IPP_TAG_ZERO)) != NULL)
4092+
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))
40934093
pwg_ppdize_name(ippGetString(attr, 0, NULL), ppdname, sizeof(ppdname));
40944094
else
40954095
strlcpy(ppdname, "Unknown", sizeof(ppdname));
40964096

4097-
if ((attr = ippFindAttribute(supported, "media-type-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 1)
4097+
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))
40984098
{
40994099
cupsFilePrintf(fp, "*OpenUI *MediaType: PickOne\n"
41004100
"*OrderDependency: 10 AnySetup *MediaType\n"
@@ -4540,12 +4540,12 @@ _ppdCreateFromIPP2(
45404540
* Output bin...
45414541
*/
45424542

4543-
if ((attr = ippFindAttribute(supported, "output-bin-default", IPP_TAG_ZERO)) != NULL)
4543+
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))
45444544
pwg_ppdize_name(ippGetString(attr, 0, NULL), ppdname, sizeof(ppdname));
45454545
else
45464546
strlcpy(ppdname, "Unknown", sizeof(ppdname));
45474547

4548-
if ((attr = ippFindAttribute(supported, "output-bin-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 0)
4548+
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))
45494549
{
45504550
ipp_attribute_t *trays = ippFindAttribute(supported, "printer-output-tray", IPP_TAG_STRING);
45514551
/* printer-output-tray attribute, if any */

0 commit comments

Comments
 (0)