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.
CVE: CVE-2012-5667

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.  */
