From cd326609c3879a2eb673ae47cac4aac263258c11 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 3 May 2016 17:40:33 +0000
Subject: pcre: update to 8.38

---
 abs/core/pcre/01-CVE-2016-1283.patch | 18 ++++++++++
 abs/core/pcre/PKGBUILD               | 65 ++++++++++++++++++++++++------------
 2 files changed, 62 insertions(+), 21 deletions(-)
 create mode 100644 abs/core/pcre/01-CVE-2016-1283.patch

diff --git a/abs/core/pcre/01-CVE-2016-1283.patch b/abs/core/pcre/01-CVE-2016-1283.patch
new file mode 100644
index 0000000..2c2dad2
--- /dev/null
+++ b/abs/core/pcre/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/abs/core/pcre/PKGBUILD b/abs/core/pcre/PKGBUILD
index 08a9117..e578d33 100644
--- a/abs/core/pcre/PKGBUILD
+++ b/abs/core/pcre/PKGBUILD
@@ -1,38 +1,61 @@
-# $Id: PKGBUILD 163492 2012-07-13 12:30:53Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# $Id$
+# Maintainer: Sébastien "Seblu" Luttringer
+# Contributor: Allan McRae <allan@archlinux.org>
 # Contributor: Eric Belanger <eric@archlinux.org>
 # Contributor: John Proctor <jproctor@prium.net>
 
 pkgname=pcre
-pkgver=8.31
-pkgrel=1
-pkgdesc="A library that implements Perl 5-style regular expressions"
+pkgver=8.38
+pkgrel=3
+pkgdesc='A library that implements Perl 5-style regular expressions'
 arch=('i686' 'x86_64')
-url="http://www.pcre.org/"
+url='http://www.pcre.org/'
 license=('BSD')
-depends=('gcc-libs')
-options=('!libtool')
-source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${pkgname}-${pkgver}.tar.bz2{,.sig})
-md5sums=('1c9a276af932b5599157f96e945391f0'
-         '873bcd2cd9f1e0aa1e28e256b3e31506')
+depends=('gcc-libs' 'readline' 'zlib' 'bzip2' 'bash')
+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 "${srcdir}"/${pkgname}-${pkgver}
-  
-  [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
-  ./configure --prefix=/usr --enable-pcre16 --enable-jit \
-    --enable-utf8 --enable-unicode-properties
+  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 "${srcdir}"/${pkgname}-${pkgver}
-  make check
+  cd $pkgname-$pkgver
+  make -j1 check
 }
 
 package() {
-  cd "${srcdir}"/${pkgname}-${pkgver}
-  make DESTDIR="${pkgdir}" install
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
 
-  install -Dm644 LICENCE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+  install -Dm644 LICENCE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
 }
+
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12

