summaryrefslogtreecommitdiff
path: root/libre/pcre-static
diff options
context:
space:
mode:
Diffstat (limited to 'libre/pcre-static')
-rw-r--r--libre/pcre-static/01-CVE-2016-1283.patch18
-rw-r--r--libre/pcre-static/PKGBUILD62
2 files changed, 80 insertions, 0 deletions
diff --git a/libre/pcre-static/01-CVE-2016-1283.patch b/libre/pcre-static/01-CVE-2016-1283.patch
new file mode 100644
index 000000000..2c2dad29e
--- /dev/null
+++ b/libre/pcre-static/01-CVE-2016-1283.patch
@@ -0,0 +1,18 @@
+Index: pcre_compile.c
+===================================================================
+--- a/pcre_compile.c (revision 1635)
++++ b/pcre_compile.c (revision 1636)
+@@ -7311,7 +7311,12 @@
+ so far in order to get the number. If the name is not found, leave
+ the value of recno as 0 for a forward reference. */
+
+- else
++ /* This patch (removing "else") fixes a problem when a reference is
++ to multiple identically named nested groups from within the nest.
++ Once again, it is not the "proper" fix, and it results in an
++ over-allocation of memory. */
++
++ /* else */
+ {
+ ng = cd->named_groups;
+ for (i = 0; i < cd->names_found; i++, ng++)
diff --git a/libre/pcre-static/PKGBUILD b/libre/pcre-static/PKGBUILD
new file mode 100644
index 000000000..20cbb5aa6
--- /dev/null
+++ b/libre/pcre-static/PKGBUILD
@@ -0,0 +1,62 @@
+# Maintainer: Márcio Silva <coadde@parabola.nu>
+# based of pcre
+
+_pkgname=pcre
+pkgname=pcre-static
+pkgver=8.38
+pkgrel=3
+pkgdesc='A library that implements Perl 5-style regular expressions (static libraries only)'
+arch=('i686' 'x86_64' 'armv7h')
+url='http://www.pcre.org/'
+license=('BSD')
+depends=('gcc-libs-static' 'readline-static' 'bzip2-static' 'pcre')
+options=('staticlibs')
+validpgpkeys=('45F68D54BBE23FB3039B46E59766E084FB0F43D8') # Philip Hazel
+source=("ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/$_pkgname-$pkgver.tar.bz2"{,.sig}
+ '01-CVE-2016-1283.patch')
+md5sums=('00aabbfe56d5a48b270f999b508c5ad2'
+ 'SKIP'
+ '722aba6455a3f0240eaa22289f0176a0')
+
+prepare() {
+ cd $_pkgname-$pkgver
+ # apply patch from the source array (should be a pacman feature)
+ local filename
+ for filename in "${source[@]}"; do
+ if [[ "$filename" =~ \.patch$ ]]; then
+ msg2 "Applying patch $filename"
+ patch -p1 -N -i "$srcdir/$filename"
+ fi
+ done
+ :
+}
+
+build() {
+ cd $_pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --enable-unicode-properties \
+ --enable-pcre16 \
+ --enable-pcre32 \
+ --enable-jit \
+ --enable-pcregrep-libz \
+ --enable-pcregrep-libbz2 \
+ --enable-pcretest-libreadline
+ make
+}
+
+check() {
+ cd $_pkgname-$pkgver
+ make -j1 check
+}
+
+package() {
+ cd $_pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ # remove unused files
+ rm -vr ${pkgdir}/usr/{bin,include,lib/pkgconfig,share}
+ rm -v ${pkgdir}/usr/lib/lib*.so*
+}
+
+# vim:set ts=2 sw=2 et: