summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authortez <tez@pkgsrc.org>2010-04-17 20:10:16 +0000
committertez <tez@pkgsrc.org>2010-04-17 20:10:16 +0000
commit8c32a4526d6cd5966d89bcce26b710ca3c8ba320 (patch)
treec14086fab8cbfd8d5a9d7b4e3fef42ae9457c3fa /lang
parent5b3980eaeae63e70da74d65f416dc73d4d58955a (diff)
downloadpkgsrc-8c32a4526d6cd5966d89bcce26b710ca3c8ba320.tar.gz
CVE-2008-2371 pcro buffer overflow fix based on:
http://vcs.pcre.org/viewvc/code/trunk/pcre_compile.c?r1=504&r2=505&view=patch
Diffstat (limited to 'lang')
-rw-r--r--lang/erlang/Makefile4
-rw-r--r--lang/erlang/distinfo3
-rw-r--r--lang/erlang/patches/patch-ax34
3 files changed, 38 insertions, 3 deletions
diff --git a/lang/erlang/Makefile b/lang/erlang/Makefile
index dc141170b3d..96f725a6525 100644
--- a/lang/erlang/Makefile
+++ b/lang/erlang/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.44 2010/01/17 12:02:22 wiz Exp $
+# $NetBSD: Makefile,v 1.45 2010/04/17 20:10:16 tez Exp $
DISTNAME= otp_src_${DIST_VERSION_MAJOR}${DIST_VERSION_MINOR:D-${DIST_VERSION_MINOR}}
PKGNAME= erlang-${ERLANG_VERSION}
-PKGREVISION= 3
+PKGREVISION= 4
CATEGORIES= lang
MASTER_SITES= http://www.erlang.org/download/
diff --git a/lang/erlang/distinfo b/lang/erlang/distinfo
index f053ec16b0d..7ccba2c81c5 100644
--- a/lang/erlang/distinfo
+++ b/lang/erlang/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.21 2009/12/18 23:33:19 asau Exp $
+$NetBSD: distinfo,v 1.22 2010/04/17 20:10:16 tez Exp $
SHA1 (erlang/otp_src_R13B03.tar.gz) = 161f22d498da244d4b32181a78b04d97523857d1
RMD160 (erlang/otp_src_R13B03.tar.gz) = 7cf3d1cf6cdf73ff19f5a416396c4024e641ec29
@@ -24,3 +24,4 @@ SHA1 (patch-at) = f0b8733b9ce3ac6c15274e83464499779ae25399
SHA1 (patch-au) = fe924a3306a278f51d10b1d2ad14432ec9f1428e
SHA1 (patch-av) = 6f54c914d760145298036aeabf81735f91acdd06
SHA1 (patch-aw) = 38c5dbe389c0ec8e0bea16b99f56ddc1dc4c581e
+SHA1 (patch-ax) = dac42b8768a8cbe5793d2a11f3ecdc7d384a1f77
diff --git a/lang/erlang/patches/patch-ax b/lang/erlang/patches/patch-ax
new file mode 100644
index 00000000000..8e247e97943
--- /dev/null
+++ b/lang/erlang/patches/patch-ax
@@ -0,0 +1,34 @@
+$NetBSD: patch-ax,v 1.1 2010/04/17 20:10:16 tez Exp $
+CVE-2008-2371 pcro buffer overflow patch
+
+--- erts/emulator/pcre/pcre_compile.c.orig 2010-04-17 14:45:46.437030500 -0500
++++ erts/emulator/pcre/pcre_compile.c 2010-04-17 14:48:54.644343400 -0500
+@@ -92,6 +92,10 @@
+
+ #define COMPILE_WORK_SIZE (4096)
+
++/* The overrun tests check for a slightly smaller size so that they detect the
++overrun before it actually does run off the end of the data block. */
++
++#define WORK_SIZE_CHECK (COMPILE_WORK_SIZE - 100)
+
+ /* Table for handling escaped characters in the range '0'-'z'. Positive returns
+ are simple data values; negative values are for special things like \d and so
+@@ -2445,7 +2449,7 @@
+ #ifdef DEBUG
+ if (code > cd->hwm) cd->hwm = code; /* High water info */
+ #endif
+- if (code > cd->start_workspace + COMPILE_WORK_SIZE) /* Check for overrun */
++ if (code > cd->start_workspace + WORK_SIZE_CHECK) /* Check for overrun */
+ {
+ *errorcodeptr = ERR52;
+ goto FAILED;
+@@ -2494,7 +2498,7 @@
+ /* In the real compile phase, just check the workspace used by the forward
+ reference list. */
+
+- else if (cd->hwm > cd->start_workspace + COMPILE_WORK_SIZE)
++ else if (cd->hwm > cd->start_workspace + WORK_SIZE_CHECK)
+ {
+ *errorcodeptr = ERR52;
+ goto FAILED;