-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathcups-CVE-2010-2941.patch
47 lines (45 loc) · 1.96 KB
/
cups-CVE-2010-2941.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
diff -up cups-1.4.2/cups/ipp.c.CVE-2010-2941 cups-1.4.2/cups/ipp.c
--- cups-1.4.2/cups/ipp.c.CVE-2010-2941 2009-05-14 18:28:14.000000000 +0100
+++ cups-1.4.2/cups/ipp.c 2010-10-26 10:42:46.970995011 +0100
@@ -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 -up cups-1.4.2/cups/ipp.h.CVE-2010-2941 cups-1.4.2/cups/ipp.h
--- cups-1.4.2/cups/ipp.h.CVE-2010-2941 2009-05-13 22:39:17.000000000 +0100
+++ cups-1.4.2/cups/ipp.h 2010-10-26 10:42:46.971995060 +0100
@@ -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 */