diff options
Diffstat (limited to 'meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch')
-rw-r--r-- | meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch b/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch new file mode 100644 index 0000000000..0631f35f16 --- /dev/null +++ b/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | The patch to fix CVE-2012-5667 | ||
2 | Reference: https://bugzilla.redhat.com/attachment.cgi?id=686605&action=diff | ||
3 | |||
4 | Multiple integer overflows in GNU Grep before 2.11 might allow | ||
5 | context-dependent attackers to execute arbitrary code via vectors | ||
6 | involving a long input line that triggers a heap-based buffer overflow. | ||
7 | |||
8 | http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5667 | ||
9 | |||
10 | Upstream-status: Inappropriate [other] | ||
11 | This version of GNU Grep has been abandoned upstream and they are no longer | ||
12 | accepting patches. This is not a backport. | ||
13 | |||
14 | Signed-off-by Ming Liu <ming.liu@windriver.com> | ||
15 | --- | ||
16 | grep.c | 7 +++---- | ||
17 | 1 file changed, 3 insertions(+), 4 deletions(-) | ||
18 | |||
19 | --- a/src/grep.c 2013-05-15 13:39:33.359191769 +0800 | ||
20 | +++ a/src/grep.c 2013-05-15 13:50:22.609191882 +0800 | ||
21 | @@ -306,6 +306,11 @@ fillbuf (size_t save, struct stats const | ||
22 | int cc = 1; | ||
23 | char *readbuf; | ||
24 | size_t readsize; | ||
25 | + const size_t max_save = INT_MAX / 2; | ||
26 | + | ||
27 | + /* Limit the amount of saved data to INT_MAX to fix CVE-2012-5667 */ | ||
28 | + if (save > max_save) | ||
29 | + error (2, 0, _("line too long")); | ||
30 | |||
31 | /* Offset from start of buffer to start of old stuff | ||
32 | that we want to save. */ | ||