aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch
diff options
context:
space:
mode:
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.patch32
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 @@
+The patch to fix CVE-2012-5667
+Reference: https://bugzilla.redhat.com/attachment.cgi?id=686605&action=diff
+
+Multiple integer overflows in GNU Grep before 2.11 might allow
+context-dependent attackers to execute arbitrary code via vectors
+involving a long input line that triggers a heap-based buffer overflow.
+
+http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5667
+
+Upstream-status: Inappropriate [other]
+This version of GNU Grep has been abandoned upstream and they are no longer
+accepting patches. This is not a backport.
+
+Signed-off-by Ming Liu <ming.liu@windriver.com>
+---
+ grep.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+--- a/src/grep.c 2013-05-15 13:39:33.359191769 +0800
++++ a/src/grep.c 2013-05-15 13:50:22.609191882 +0800
+@@ -306,6 +306,11 @@ fillbuf (size_t save, struct stats const
+ int cc = 1;
+ char *readbuf;
+ size_t readsize;
++ const size_t max_save = INT_MAX / 2;
++
++ /* Limit the amount of saved data to INT_MAX to fix CVE-2012-5667 */
++ if (save > max_save)
++ error (2, 0, _("line too long"));
+
+ /* Offset from start of buffer to start of old stuff
+ that we want to save. */