summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-02-26 04:26:16 -0500
committerMark H Weaver <mhw@netris.org>2015-02-26 05:16:04 -0500
commita068dba78bde9c83a69c755df1131c286d065850 (patch)
tree152cbb2eeb189544bf52d377ea8c8bed27d7c266 /gnu
parent8a00b93027ee185f251d878f46d9967e5ccdd99e (diff)
downloadguix-a068dba78bde9c83a69c755df1131c286d065850.tar.gz
gnu: grep: Apply fix for CVE-2015-1345.
* gnu/packages/patches/grep-CVE-2015-1345.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/base.scm (grep): Add patch.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/base.scm3
-rw-r--r--gnu/packages/patches/grep-CVE-2015-1345.patch17
2 files changed, 19 insertions, 1 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index dae9ff067b..698a6b6e03 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -73,7 +73,8 @@ command-line arguments, multiple languages, and so on.")
                                 version ".tar.xz"))
             (sha256
              (base32
-              "1pp5n15qwxrw1pibwjhhgsibyv5cafhamf8lwzjygs6y00fa2i2j"))))
+              "1pp5n15qwxrw1pibwjhhgsibyv5cafhamf8lwzjygs6y00fa2i2j"))
+            (patches (list (search-patch "grep-CVE-2015-1345.patch")))))
    (build-system gnu-build-system)
    (synopsis "Print lines matching a pattern")
    (description
diff --git a/gnu/packages/patches/grep-CVE-2015-1345.patch b/gnu/packages/patches/grep-CVE-2015-1345.patch
new file mode 100644
index 0000000000..b0d0c8e5dc
--- /dev/null
+++ b/gnu/packages/patches/grep-CVE-2015-1345.patch
@@ -0,0 +1,17 @@
+Fix CVE-2015-1345.  From upstream commit
+83a95bd8c8561875b948cadd417c653dbe7ef2e2
+by Yuliy Pisetsky <ypisetsky@fb.com>.
+
+diff --git a/src/kwset.c b/src/kwset.c
+index 4003c8d..376f7c3 100644
+--- a/src/kwset.c
++++ b/src/kwset.c
+@@ -643,6 +643,8 @@ bmexec_trans (kwset_t kwset, char const *text, size_t size)
+                     if (! tp)
+                       return -1;
+                     tp++;
++                    if (ep <= tp)
++                      break;
+                   }
+               }
+           }