diff options
Diffstat (limited to 'libre')
-rw-r--r-- | libre/pcre-static/01-CVE-2016-1283.patch | 18 | ||||
-rw-r--r-- | libre/pcre-static/PKGBUILD | 62 |
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: |