summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@pkgsrc.org>2008-07-10 13:00:01 +0000
committertron <tron@pkgsrc.org>2008-07-10 13:00:01 +0000
commitac03f4157c738b0c2a6e27953742608136aa6f7f (patch)
tree9f1ada1b67baf5175c37d4937bcc394cccfbb107
parent29ac325c8acd1ed8a4689a193a2d7d7266a3b21f (diff)
downloadpkgsrc-ac03f4157c738b0c2a6e27953742608136aa6f7f.tar.gz
Pullup ticket #2443 - requested by taca
Security patch for ruby18-base Revisions pulled up: - lang/ruby18-base/Makefile 1.45 via patch - lang/ruby18-base/distinfo 1.31 via patch - lang/ruby18-base/patches/patch-ad 1.9 via patch --- Module Name: pkgsrc Committed By: tonnerre Date: Thu Jul 3 21:06:10 UTC 2008 Modified Files: pkgsrc/lang/ruby18-base: Makefile distinfo Added Files: pkgsrc/lang/ruby18-base/patches: patch-ad Log Message: Add a patch to fix the integer overflow in rb_ary_fill() in Ruby 1.8 which can be exploited to cause a denial of service through memory exhaustion. (SN-2008-02)
-rw-r--r--lang/ruby18-base/Makefile3
-rw-r--r--lang/ruby18-base/distinfo3
-rw-r--r--lang/ruby18-base/patches/patch-dj20
3 files changed, 24 insertions, 2 deletions
diff --git a/lang/ruby18-base/Makefile b/lang/ruby18-base/Makefile
index f2266d52ca9..074eacfe4eb 100644
--- a/lang/ruby18-base/Makefile
+++ b/lang/ruby18-base/Makefile
@@ -1,8 +1,9 @@
-# $NetBSD: Makefile,v 1.40 2008/01/04 15:42:34 ghen Exp $
+# $NetBSD: Makefile,v 1.40.2.1 2008/07/10 13:00:01 tron Exp $
#
DISTNAME= ${RUBY_DISTNAME}
PKGNAME= ${RUBY_PKGPREFIX}-base-${RUBY_VERSION_SUFFIX}
+PKGREVISION= 1
CATEGORIES= lang ruby
MASTER_SITES= ${MASTER_SITE_RUBY}
diff --git a/lang/ruby18-base/distinfo b/lang/ruby18-base/distinfo
index f65414a43ce..f0b60cf03ed 100644
--- a/lang/ruby18-base/distinfo
+++ b/lang/ruby18-base/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.26.2.1 2008/06/28 11:54:07 tron Exp $
+$NetBSD: distinfo,v 1.26.2.2 2008/07/10 13:00:01 tron Exp $
SHA1 (ruby-1.8.6-p230.tar.bz2) = c630222fd6b4272db84f54e68879f81e2014cd51
RMD160 (ruby-1.8.6-p230.tar.bz2) = cdf3ea33c3fd2258c685aea634aca7e9624036ec
@@ -10,3 +10,4 @@ SHA1 (patch-ad) = 0fb90a6280afca04d881bb94963ceb7542c6212d
SHA1 (patch-de) = 716dadc9042f81fe16a183fe03b2a63ec2598212
SHA1 (patch-df) = 0ea1f97ad998361172f78d5cb0e1d0a5f1501b24
SHA1 (patch-dg) = e79566ded3c82e63357966e961d7dcdfb84a03cf
+SHA1 (patch-dj) = 4f8f0a53f3d108c7e3c10de0f74ad9420d6c07a2
diff --git a/lang/ruby18-base/patches/patch-dj b/lang/ruby18-base/patches/patch-dj
new file mode 100644
index 00000000000..4d122ff9525
--- /dev/null
+++ b/lang/ruby18-base/patches/patch-dj
@@ -0,0 +1,20 @@
+$NetBSD: patch-dj,v 1.1.2.1 2008/07/10 13:00:01 tron Exp $
+
+Avoid memory size integer overflow memory exhaustion DoS in filling
+arrays (SN-2008-02).
+
+--- array.c.orig 2008-06-20 15:53:16.000000000 +0900
++++ array.c
+@@ -2272,10 +2272,10 @@ rb_ary_fill(argc, argv, ary)
+ break;
+ }
+ rb_ary_modify(ary);
+- end = beg + len;
+- if (end < 0) {
++ if (beg >= ARY_MAX_SIZE || len > ARY_MAX_SIZE - beg) {
+ rb_raise(rb_eArgError, "argument too big");
+ }
++ end = beg + len;
+ if (end > RARRAY(ary)->len) {
+ if (end >= RARRAY(ary)->aux.capa) {
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, end);