File cups-2.2.7-CVE-2020-10001.patch of Package cups (Revision bd63122de6aba1ba7baeaa338438fe1c)
Currently displaying revision bd63122de6aba1ba7baeaa338438fe1c , Show latest
39
1
--- cups/ipp.c.orig 2021-01-11 10:53:43.080847679 +0100
2
+++ cups/ipp.c 2021-01-11 12:03:56.010423238 +0100
3
4
unsigned char *buffer, /* Data buffer */
5
string[IPP_MAX_TEXT],
6
/* Small string buffer */
7
- *bufptr; /* Pointer into buffer */
8
+ *bufptr, /* Pointer into buffer */
9
+ *bufend; /* End of buffer */
10
ipp_attribute_t *attr; /* Current attribute */
11
ipp_tag_t tag; /* Current tag */
12
ipp_tag_t value_tag; /* Current value tag */
13
14
}
15
16
bufptr = buffer;
17
+ bufend = buffer + n;
18
19
/*
20
* text-with-language and name-with-language are composite
21
22
23
n = (bufptr[0] << 8) | bufptr[1];
24
25
- if ((bufptr + 2 + n) >= (buffer + IPP_BUF_SIZE) || n >= (int)sizeof(string))
26
+ if ((bufptr + 2 + n + 2) > bufend || n >= (int)sizeof(string))
27
{
28
_cupsSetError(IPP_STATUS_ERROR_INTERNAL,
29
_("IPP language length overflows value."), 1);
30
31
bufptr += 2 + n;
32
n = (bufptr[0] << 8) | bufptr[1];
33
34
- if ((bufptr + 2 + n) >= (buffer + IPP_BUF_SIZE))
35
+ if ((bufptr + 2 + n) > bufend)
36
{
37
_cupsSetError(IPP_STATUS_ERROR_INTERNAL,
38
_("IPP string length overflows value."), 1);
39