File cups-1.3.9-CVE-2010-2941.patch of Package cups

--- cups/ipp.c.orig	2008-07-12 00:48:49.000000000 +0200
+++ cups/ipp.c	2010-10-29 15:38:22.000000000 +0200
@@ -1187,15 +1187,18 @@ ippReadIO(void       *src,		/* I - Data
 
 	      attr->value_tag = tag;
 	    }
-	    else if (value_tag >= IPP_TAG_TEXTLANG &&
-		     value_tag <= IPP_TAG_MIMETYPE)
+	    else if (value_tag == IPP_TAG_TEXTLANG ||
+		     value_tag == IPP_TAG_NAMELANG ||
+		     (value_tag >= IPP_TAG_TEXT &&
+		      value_tag <= IPP_TAG_MIMETYPE))
             {
 	     /*
 	      * String values can sometimes come across in different
 	      * forms; accept sets of differing values...
 	      */
 
-	      if (tag < IPP_TAG_TEXTLANG || tag > IPP_TAG_MIMETYPE)
+	      if (tag != IPP_TAG_TEXTLANG && tag != IPP_TAG_NAMELANG &&
+		  (tag < IPP_TAG_TEXT || tag > IPP_TAG_MIMETYPE))
 	        return (IPP_ERROR);
             }
 	    else if (value_tag != tag)
@@ -2529,6 +2532,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 :
--- cups/ipp.h.orig	2008-07-12 00:48:49.000000000 +0200
+++ cups/ipp.h	2010-10-29 15:39:37.000000000 +0200
@@ -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 */
openSUSE Build Service is sponsored by