summaryrefslogtreecommitdiff
path: root/libpcre
diff options
context:
space:
mode:
authorJuergen Daubert <jue@jue.li>2015-07-11 10:56:37 +0200
committerJuergen Daubert <jue@jue.li>2015-07-11 10:56:37 +0200
commit023997c9bf7de5e3b84fe4299238618d89b73232 (patch)
treef6ff5de983dbab58c29cb8d9cd6fb4ad998670c3 /libpcre
parent1476dd98324355c80ea355fef0bdfe4dd41ac169 (diff)
downloadcore-023997c9bf7de5e3b84fe4299238618d89b73232.tar.gz
core-023997c9bf7de5e3b84fe4299238618d89b73232.tar.xz
[notify] libpcre: security fix for CVE-2015-5073
Diffstat (limited to 'libpcre')
-rw-r--r--libpcre/.md5sum1
-rw-r--r--libpcre/Pkgfile8
-rw-r--r--libpcre/libpcre-8.37-CVE-2015-5073.patch72
3 files changed, 79 insertions, 2 deletions
diff --git a/libpcre/.md5sum b/libpcre/.md5sum
index c8296d28..4cd15d70 100644
--- a/libpcre/.md5sum
+++ b/libpcre/.md5sum
@@ -1,2 +1,3 @@
45df6737e61738cc8bb061e0b9c0fbb2 01-seven-security-patches.patch
+5222dd119a2cfde15df9ae2583c64698 libpcre-8.37-CVE-2015-5073.patch
ed91be292cb01d21bc7e526816c26981 pcre-8.37.tar.bz2
diff --git a/libpcre/Pkgfile b/libpcre/Pkgfile
index f0ae5ad8..39934e55 100644
--- a/libpcre/Pkgfile
+++ b/libpcre/Pkgfile
@@ -4,13 +4,17 @@
name=libpcre
version=8.37
-release=2
+release=3
source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-$version.tar.bz2 \
- 01-seven-security-patches.patch)
+ 01-seven-security-patches.patch \
+ $name-$version-CVE-2015-5073.patch)
build() {
cd pcre-$version
+
patch -p1 -i $SRC/01-seven-security-patches.patch
+ patch -p1 -i $SRC/$name-$version-CVE-2015-5073.patch
+
./configure --prefix=/usr \
--mandir=/usr/man \
--enable-utf8 \
diff --git a/libpcre/libpcre-8.37-CVE-2015-5073.patch b/libpcre/libpcre-8.37-CVE-2015-5073.patch
new file mode 100644
index 00000000..a97ea392
--- /dev/null
+++ b/libpcre/libpcre-8.37-CVE-2015-5073.patch
@@ -0,0 +1,72 @@
+https://bugs.exim.org/show_bug.cgi?id=1651
+https://bugs.gentoo.org/553300
+https://bugzilla.redhat.com/1237224
+
+From 354e1f8e921dcb9cf2f3a5eac93cd826d01a7d8a Mon Sep 17 00:00:00 2001
+From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
+Date: Tue, 23 Jun 2015 16:34:53 +0000
+Subject: [PATCH] Fix buffer overflow for forward reference within backward
+ assertion with excess closing parenthesis. Bugzilla 1651.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is upstream commit ported to 8.37:
+
+commit 764692f9aea9eab50fdba6cb537441d8b34c6c37
+Author: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
+Date: Tue Jun 23 16:34:53 2015 +0000
+
+ Fix buffer overflow for forward reference within backward assertion with excess
+ closing parenthesis. Bugzilla 1651.
+
+ git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1571 2f5784b3-3f2a-0410-8824-cb99058d5e15
+
+It fixes CVE-2015-5073.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ pcre_compile.c | 2 +-
+ testdata/testinput2 | 2 ++
+ testdata/testoutput2 | 3 +++
+ 3 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/pcre_compile.c b/pcre_compile.c
+index 6f06912..b66b1f6 100644
+--- a/pcre_compile.c
++++ b/pcre_compile.c
+@@ -9392,7 +9392,7 @@ OP_RECURSE that are not fixed length get a diagnosic with a useful offset. The
+ exceptional ones forgo this. We scan the pattern to check that they are fixed
+ length, and set their lengths. */
+
+-if (cd->check_lookbehind)
++if (errorcode == 0 && cd->check_lookbehind)
+ {
+ pcre_uchar *cc = (pcre_uchar *)codestart;
+
+diff --git a/testdata/testinput2 b/testdata/testinput2
+index 83bb471..5cc9ce6 100644
+--- a/testdata/testinput2
++++ b/testdata/testinput2
+@@ -4154,4 +4154,6 @@ backtracking verbs. --/
+
+ "(?J)(?'d'(?'d'\g{d}))"
+
++/(?=di(?<=(?1))|(?=(.))))/
++
+ /-- End of testinput2 --/
+diff --git a/testdata/testoutput2 b/testdata/testoutput2
+index 7dff52a..4decb8d 100644
+--- a/testdata/testoutput2
++++ b/testdata/testoutput2
+@@ -14425,4 +14425,7 @@ Failed: lookbehind assertion is not fixed length at offset 17
+
+ "(?J)(?'d'(?'d'\g{d}))"
+
++/(?=di(?<=(?1))|(?=(.))))/
++Failed: unmatched parentheses at offset 23
++
+ /-- End of testinput2 --/
+--
+2.4.3
+

Generated by cgit