http://cups.org/str.php?L3648 diff -Naurp cups-1.4.1/cups/ipp.c cups-1.4.1.oden/cups/ipp.c --- cups-1.4.1/cups/ipp.c 2009-05-14 13:28:14.000000000 -0400 +++ cups-1.4.1.oden/cups/ipp.c 2010-11-13 12:31:01.000000000 -0500 @@ -1241,7 +1241,9 @@ ippReadIO(void *src, /* I - Data attr->value_tag = tag; } - else if ((value_tag >= IPP_TAG_TEXTLANG && + else if (value_tag == IPP_TAG_TEXTLANG || + value_tag == IPP_TAG_NAMELANG || + (value_tag >= IPP_TAG_TEXT && value_tag <= IPP_TAG_MIMETYPE)) { /* @@ -1249,8 +1251,9 @@ ippReadIO(void *src, /* I - Data * forms; accept sets of differing values... */ - if ((tag < IPP_TAG_TEXTLANG || tag > IPP_TAG_MIMETYPE) && - tag != IPP_TAG_NOVALUE) + if (tag != IPP_TAG_TEXTLANG && tag != IPP_TAG_NAMELANG && + (tag < IPP_TAG_TEXT || tag > IPP_TAG_MIMETYPE) && + tag != IPP_TAG_NOVALUE) { DEBUG_printf(("1ippReadIO: 1setOf value tag %x(%s) != %x(%s)", value_tag, ippTagString(value_tag), tag, @@ -2720,6 +2723,7 @@ _ippFreeAttr(ipp_attribute_t *attr) /* I { case IPP_TAG_TEXT : case IPP_TAG_NAME : + case IPP_TAG_RESERVED_STRING : case IPP_TAG_KEYWORD : case IPP_TAG_URI : case IPP_TAG_URISCHEME : diff -Naurp cups-1.4.1/cups/ipp.h cups-1.4.1.oden/cups/ipp.h --- cups-1.4.1/cups/ipp.h 2009-05-13 17:39:17.000000000 -0400 +++ cups-1.4.1.oden/cups/ipp.h 2010-11-13 12:31:07.000000000 -0500 @@ -94,7 +94,8 @@ typedef enum ipp_tag_e /**** Format ta IPP_TAG_END_COLLECTION, /* End of collection value */ IPP_TAG_TEXT = 0x41, /* Text value */ IPP_TAG_NAME, /* Name value */ - IPP_TAG_KEYWORD = 0x44, /* Keyword value */ + IPP_TAG_RESERVED_STRING, /* Reserved for future string value @private@ */ + IPP_TAG_KEYWORD, /* Keyword value */ IPP_TAG_URI, /* URI value */ IPP_TAG_URISCHEME, /* URI scheme value */ IPP_TAG_CHARSET, /* Character set value */