summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Yamin <plasmaroo@gentoo.org>2004-04-17 13:14:42 +0000
committerTim Yamin <plasmaroo@gentoo.org>2004-04-17 13:14:42 +0000
commitff0870013a15da444b2be8ea078868eb0bde118f (patch)
tree8b61333a23438474369562ce4dcc6150f9905ab7 /sys-kernel
parentBump version. (diff)
downloadhistorical-ff0870013a15da444b2be8ea078868eb0bde118f.tar.gz
historical-ff0870013a15da444b2be8ea078868eb0bde118f.tar.bz2
historical-ff0870013a15da444b2be8ea078868eb0bde118f.zip
Added patches for the CAN-2004-0010, CAN-2004-0177 and CAN-2004-0178 vulnerabilities.
Diffstat (limited to 'sys-kernel')
-rw-r--r--sys-kernel/ppc-sources-dev/ChangeLog12
-rw-r--r--sys-kernel/ppc-sources-dev/Manifest7
-rw-r--r--sys-kernel/ppc-sources-dev/files/digest-ppc-sources-dev-2.4.24-r42
-rw-r--r--sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0010.patch200
-rw-r--r--sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0177.patch10
-rw-r--r--sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0178.patch11
-rw-r--r--sys-kernel/ppc-sources-dev/ppc-sources-dev-2.4.24-r4.ebuild76
7 files changed, 316 insertions, 2 deletions
diff --git a/sys-kernel/ppc-sources-dev/ChangeLog b/sys-kernel/ppc-sources-dev/ChangeLog
index 3401eb7a9168..ee00913e48bf 100644
--- a/sys-kernel/ppc-sources-dev/ChangeLog
+++ b/sys-kernel/ppc-sources-dev/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for sys-kernel/ppc-sources-dev
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ppc-sources-dev/ChangeLog,v 1.23 2004/04/15 11:42:40 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ppc-sources-dev/ChangeLog,v 1.24 2004/04/17 13:14:42 plasmaroo Exp $
+
+*ppc-sources-dev-2.4.24-r4 (17 Apr 2004)
+
+ 17 Apr 2004; <plasmaroo@gentoo.org>
+ +files/ppc-sources-dev-2.4.24.CAN-2004-0010.patch,
+ +files/ppc-sources-dev-2.4.24.CAN-2004-0177.patch,
+ +files/ppc-sources-dev-2.4.24.CAN-2004-0178.patch,
+ +ppc-sources-dev-2.4.24-r4.ebuild:
+ Added patches for the CAN-2004-0010, CAN-2004-0177 and CAN-2004-0178
+ vulnerabilities.
*ppc-sources-dev-2.4.24-r3 (15 Apr 2004)
diff --git a/sys-kernel/ppc-sources-dev/Manifest b/sys-kernel/ppc-sources-dev/Manifest
index f37a9041a0b3..9186aa453e18 100644
--- a/sys-kernel/ppc-sources-dev/Manifest
+++ b/sys-kernel/ppc-sources-dev/Manifest
@@ -1,4 +1,5 @@
-MD5 4cc3d866e6f6e95519304ae1b2a36835 ChangeLog 4132
+MD5 e2e5b248b2e7936876e100411616ddd2 ppc-sources-dev-2.4.24-r4.ebuild 2197
+MD5 6269c8d3e15f4c25082a3b7bc1aaa9ce ChangeLog 4499
MD5 86ed2964ccb40dae9ab3a937ef95c0c6 ppc-sources-dev-2.4.22.ebuild 2062
MD5 572431207fcba2e69c55bcd77389d726 ppc-sources-dev-2.4.24-r2.ebuild 1824
MD5 4b1f93b2fca55d2bfdd961a517eb5611 metadata.xml 347
@@ -14,14 +15,18 @@ MD5 5b30d68e4f8019c1433bcb2a2f70adec files/digest-ppc-sources-dev-2.4.22 143
MD5 f2d2c30d68a939687046482249f6565e files/digest-ppc-sources-dev-2.4.24-r3 146
MD5 e2e2b545b6fcdcecf49e33798efa5b84 files/ppc-sources-dev-2.4.22.rtc_fix.patch 7073
MD5 a580e6b8c602c2e13fb5de7cc2de65a0 files/ppc-sources-dev-2.4.22.do_brk.patch 242
+MD5 ac42024b6e6ee1e2165914db4b22a61c files/ppc-sources-dev-2.4.24.CAN-2004-0178.patch 424
MD5 21f3a4f186017d925067335e24db36a1 files/ppc-sources-dev-2.4.24.CAN-2004-0109.patch 1877
MD5 c45b2bb6026a8726c5932c0778879a21 files/digest-ppc-sources-dev-2.4.20 70
MD5 e880d661985279c3a91187e02fc00611 files/ppc-sources-dev-2.4.22-r1.via-pmu.diff 591
+MD5 147fec50180ad91b6260fc7201dcb90f files/ppc-sources-dev-2.4.24.CAN-2004-0010.patch 6050
MD5 660f16218c08735d9c1e9e0e5b292a23 files/digest-ppc-sources-dev-2.4.19 68
MD5 5b30d68e4f8019c1433bcb2a2f70adec files/digest-ppc-sources-dev-2.4.22-r1 143
MD5 f2d2c30d68a939687046482249f6565e files/digest-ppc-sources-dev-2.4.24-r1 146
MD5 6fc2167c8361b6d596b4f3e733cb1a91 files/ppc-sources-dev-2.4.24.pmac_pmu.patch 803
MD5 6c1a91839ac295ee40fa04ac57da456b files/digest-ppc-sources-dev-2.4.24 142
MD5 91cdf75820acd5ac4942bab12e5ceb5a files/digest-ppc-sources-dev-2.4.21 143
+MD5 f2d2c30d68a939687046482249f6565e files/digest-ppc-sources-dev-2.4.24-r4 146
MD5 f2d2c30d68a939687046482249f6565e files/digest-ppc-sources-dev-2.4.24-r2 146
MD5 174438d215b70cad5ffb00ca8123c062 files/ppc-sources-dev-2.4.24.munmap.patch 837
+MD5 eaeda68a619caaddd5b8fdc5e7c39932 files/ppc-sources-dev-2.4.24.CAN-2004-0177.patch 384
diff --git a/sys-kernel/ppc-sources-dev/files/digest-ppc-sources-dev-2.4.24-r4 b/sys-kernel/ppc-sources-dev/files/digest-ppc-sources-dev-2.4.24-r4
new file mode 100644
index 000000000000..24a56477b65c
--- /dev/null
+++ b/sys-kernel/ppc-sources-dev/files/digest-ppc-sources-dev-2.4.24-r4
@@ -0,0 +1,2 @@
+MD5 1e055c42921b2396a559d84df4c3d9aa linux-2.4.24.tar.bz2 29837818
+MD5 15014e78e966198105b535d4735d858f patch-2.4.24-ppc-dev-r1.patch.bz2 1704281
diff --git a/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0010.patch b/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0010.patch
new file mode 100644
index 000000000000..6b4b1cefa49e
--- /dev/null
+++ b/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0010.patch
@@ -0,0 +1,200 @@
+diff -urN linux-2.4.25-pre6/fs/ncpfs/dir.c linux-2.4.25-pre7/fs/ncpfs/dir.c
+--- linux-2.4.25-pre6/fs/ncpfs/dir.c 2002-11-28 15:53:15.000000000 -0800
++++ linux-2.4.25-pre7/fs/ncpfs/dir.c 2004-01-23 10:53:26.000000000 -0800
+@@ -266,8 +266,8 @@
+ struct ncp_server *server;
+ struct inode *dir = dentry->d_parent->d_inode;
+ struct ncp_entry_info finfo;
+- int res, val = 0, len = dentry->d_name.len + 1;
+- __u8 __name[len];
++ int res, val = 0, len;
++ __u8 __name[NCP_MAXPATHLEN + 1];
+
+ if (!dentry->d_inode || !dir)
+ goto finished;
+@@ -291,14 +291,15 @@
+ dentry->d_parent->d_name.name, dentry->d_name.name,
+ NCP_GET_AGE(dentry));
+
++ len = sizeof(__name);
+ if (ncp_is_server_root(dir)) {
+ res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
+- len-1, 1);
++ dentry->d_name.len, 1);
+ if (!res)
+ res = ncp_lookup_volume(server, __name, &(finfo.i));
+ } else {
+ res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
+- len-1, !ncp_preserve_case(dir));
++ dentry->d_name.len, !ncp_preserve_case(dir));
+ if (!res)
+ res = ncp_obtain_info(server, dir, __name, &(finfo.i));
+ }
+@@ -548,9 +549,9 @@
+ int valid = 0;
+ int hashed = 0;
+ ino_t ino = 0;
+- __u8 __name[256];
++ __u8 __name[NCP_MAXPATHLEN + 1];
+
+- qname.len = 256;
++ qname.len = sizeof(__name);
+ if (ncp_vol2io(NCP_SERVER(inode), __name, &qname.len,
+ entry->i.entryName, entry->i.nameLen,
+ !ncp_preserve_entry_case(inode, entry->i.NSCreator)))
+@@ -705,16 +706,19 @@
+ {
+ struct ncp_server* server = NCP_SBP(sb);
+ struct nw_info_struct i;
+- int result, len = strlen(server->m.mounted_vol) + 1;
+- __u8 __name[len];
++ int result;
+
+ if (ncp_single_volume(server)) {
++ int len;
+ struct dentry* dent;
++ __u8 __name[NCP_MAXPATHLEN + 1];
+
+- result = -ENOENT;
+- if (ncp_io2vol(server, __name, &len, server->m.mounted_vol,
+- len-1, 1))
++ len = sizeof(__name);
++ result = ncp_io2vol(server, __name, &len, server->m.mounted_vol,
++ strlen(server->m.mounted_vol), 1);
++ if (result)
+ goto out;
++ result = -ENOENT;
+ if (ncp_lookup_volume(server, __name, &i)) {
+ PPRINTK("ncp_conn_logged_in: %s not found\n",
+ server->m.mounted_vol);
+@@ -745,8 +749,8 @@
+ struct ncp_server *server = NCP_SERVER(dir);
+ struct inode *inode = NULL;
+ struct ncp_entry_info finfo;
+- int error, res, len = dentry->d_name.len + 1;
+- __u8 __name[len];
++ int error, res, len;
++ __u8 __name[NCP_MAXPATHLEN + 1];
+
+ error = -EIO;
+ if (!ncp_conn_valid(server))
+@@ -755,14 +759,15 @@
+ PPRINTK("ncp_lookup: server lookup for %s/%s\n",
+ dentry->d_parent->d_name.name, dentry->d_name.name);
+
++ len = sizeof(__name);
+ if (ncp_is_server_root(dir)) {
+ res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
+- len-1, 1);
++ dentry->d_name.len, 1);
+ if (!res)
+ res = ncp_lookup_volume(server, __name, &(finfo.i));
+ } else {
+ res = ncp_io2vol(server, __name, &len, dentry->d_name.name,
+- len-1, !ncp_preserve_case(dir));
++ dentry->d_name.len, !ncp_preserve_case(dir));
+ if (!res)
+ res = ncp_obtain_info(server, dir, __name, &(finfo.i));
+ }
+@@ -825,9 +830,9 @@
+ {
+ struct ncp_server *server = NCP_SERVER(dir);
+ struct ncp_entry_info finfo;
+- int error, result, len = dentry->d_name.len + 1;
++ int error, result, len;
+ int opmode;
+- __u8 __name[len];
++ __u8 __name[NCP_MAXPATHLEN + 1];
+
+ PPRINTK("ncp_create_new: creating %s/%s, mode=%x\n",
+ dentry->d_parent->d_name.name, dentry->d_name.name, mode);
+@@ -836,8 +841,9 @@
+ goto out;
+
+ ncp_age_dentry(server, dentry);
++ len = sizeof(__name);
+ error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
+- len-1, !ncp_preserve_case(dir));
++ dentry->d_name.len, !ncp_preserve_case(dir));
+ if (error)
+ goto out;
+
+@@ -880,8 +886,8 @@
+ {
+ struct ncp_entry_info finfo;
+ struct ncp_server *server = NCP_SERVER(dir);
+- int error, len = dentry->d_name.len + 1;
+- __u8 __name[len];
++ int error, len;
++ __u8 __name[NCP_MAXPATHLEN + 1];
+
+ DPRINTK("ncp_mkdir: making %s/%s\n",
+ dentry->d_parent->d_name.name, dentry->d_name.name);
+@@ -890,8 +896,9 @@
+ goto out;
+
+ ncp_age_dentry(server, dentry);
++ len = sizeof(__name);
+ error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
+- len-1, !ncp_preserve_case(dir));
++ dentry->d_name.len, !ncp_preserve_case(dir));
+ if (error)
+ goto out;
+
+@@ -909,8 +916,8 @@
+ static int ncp_rmdir(struct inode *dir, struct dentry *dentry)
+ {
+ struct ncp_server *server = NCP_SERVER(dir);
+- int error, result, len = dentry->d_name.len + 1;
+- __u8 __name[len];
++ int error, result, len;
++ __u8 __name[NCP_MAXPATHLEN + 1];
+
+ DPRINTK("ncp_rmdir: removing %s/%s\n",
+ dentry->d_parent->d_name.name, dentry->d_name.name);
+@@ -923,8 +930,9 @@
+ if (!d_unhashed(dentry))
+ goto out;
+
++ len = sizeof(__name);
+ error = ncp_io2vol(server, __name, &len, dentry->d_name.name,
+- len-1, !ncp_preserve_case(dir));
++ dentry->d_name.len, !ncp_preserve_case(dir));
+ if (error)
+ goto out;
+
+@@ -1022,9 +1030,8 @@
+ {
+ struct ncp_server *server = NCP_SERVER(old_dir);
+ int error;
+- int old_len = old_dentry->d_name.len + 1;
+- int new_len = new_dentry->d_name.len + 1;
+- __u8 __old_name[old_len], __new_name[new_len];
++ int old_len, new_len;
++ __u8 __old_name[NCP_MAXPATHLEN + 1], __new_name[NCP_MAXPATHLEN + 1];
+
+ DPRINTK("ncp_rename: %s/%s to %s/%s\n",
+ old_dentry->d_parent->d_name.name, old_dentry->d_name.name,
+@@ -1037,15 +1044,17 @@
+ ncp_age_dentry(server, old_dentry);
+ ncp_age_dentry(server, new_dentry);
+
++ old_len = sizeof(__old_name);
+ error = ncp_io2vol(server, __old_name, &old_len,
+- old_dentry->d_name.name, old_len-1,
+- !ncp_preserve_case(old_dir));
++ old_dentry->d_name.name, old_dentry->d_name.len,
++ !ncp_preserve_case(old_dir));
+ if (error)
+ goto out;
+
++ new_len = sizeof(__new_name);
+ error = ncp_io2vol(server, __new_name, &new_len,
+- new_dentry->d_name.name, new_len-1,
+- !ncp_preserve_case(new_dir));
++ new_dentry->d_name.name, new_dentry->d_name.len,
++ !ncp_preserve_case(new_dir));
+ if (error)
+ goto out;
+
+
diff --git a/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0177.patch b/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0177.patch
new file mode 100644
index 000000000000..da6b7e190685
--- /dev/null
+++ b/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0177.patch
@@ -0,0 +1,10 @@
+--- linux-2.4.26-pre3/fs/jbd/journal.c 2004-02-18 05:36:31.000000000 -0800
++++ linux-2.4.26-pre4/fs/jbd/journal.c 2004-03-16 09:59:36.000000000 -0800
+@@ -671,6 +671,7 @@
+
+ bh = getblk(journal->j_dev, blocknr, journal->j_blocksize);
+ lock_buffer(bh);
++ memset(bh->b_data, 0, journal->j_blocksize);
+ BUFFER_TRACE(bh, "return this buffer");
+ return journal_add_journal_head(bh);
+ }
diff --git a/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0178.patch b/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0178.patch
new file mode 100644
index 000000000000..19e57268c2fa
--- /dev/null
+++ b/sys-kernel/ppc-sources-dev/files/ppc-sources-dev-2.4.24.CAN-2004-0178.patch
@@ -0,0 +1,11 @@
+--- linux-2.4.26-pre2/drivers/sound/sb_audio.c 2002-02-25 11:38:06.000000000 -0800
++++ linux-2.4.26-pre3/drivers/sound/sb_audio.c 2004-03-13 07:43:23.000000000 -0800
+@@ -879,7 +879,7 @@
+ c -= locallen; p += locallen;
+ }
+ /* used = ( samples * 16 bits size ) */
+- *used = len << 1;
++ *used = max_in > ( max_out << 1) ? (max_out << 1) : max_in;
+ /* returned = ( samples * 8 bits size ) */
+ *returned = len;
+ }
diff --git a/sys-kernel/ppc-sources-dev/ppc-sources-dev-2.4.24-r4.ebuild b/sys-kernel/ppc-sources-dev/ppc-sources-dev-2.4.24-r4.ebuild
new file mode 100644
index 000000000000..d070a463d596
--- /dev/null
+++ b/sys-kernel/ppc-sources-dev/ppc-sources-dev-2.4.24-r4.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ppc-sources-dev/ppc-sources-dev-2.4.24-r4.ebuild,v 1.1 2004/04/17 13:14:42 plasmaroo Exp $
+# OKV=original kernel version, KV=patched kernel version. They can be the same.
+
+# Included patches:
+# benh 2.4.24-0
+# pegasos 2.4.24-2
+# orinoco monitor 0.13
+# O_STREAMING 2.4.20-pre9-1
+# GRSecurity 2.0-rc4
+# ea+acl+nfsacl 0.8.65
+# XFS 2.4.23
+# Loop-Jari 2.4.22.0
+# FreeS/WAN 2.01
+# x509 1.4.5
+# Extra bootlogos
+
+ETYPE="sources"
+inherit kernel eutils
+IUSE=""
+
+OKV="2.4.24"
+EXTRAVERSION="`echo ${PV}-${PR} | \
+ sed -e 's/[0-9]\+\.[0-9]\+\.[0-9]\+\(.*\)/\1/'`"
+
+KV=${PV}-ppc-dev-${PR}
+S=${WORKDIR}/${PF}
+
+inherit eutils
+
+DESCRIPTION="Full sources for the linux kernel 2.4.24 with lots of extra features"
+SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2
+ mirror://gentoo/patch-${KV/r4/r1}.patch.bz2"
+
+KEYWORDS="~ppc -ppc64"
+DEPEND=">=sys-devel/binutils-2.11.90.0.31"
+RDEPEND=">=sys-libs/ncurses-5.2 dev-lang/perl virtual/modutils sys-devel/make"
+
+SLOT=${KV}
+PROVIDE="virtual/linux-sources"
+
+src_unpack() {
+ cd ${WORKDIR}
+ unpack linux-${OKV}.tar.bz2
+
+ mv linux-${OKV} ${PF}
+ cd ${PF}
+ bzcat ${DISTDIR}/patch-${KV/r4/r1}.patch.bz2 | patch -p1 || die "patch failed"
+ epatch ${FILESDIR}/${P}.munmap.patch || die "Failed to apply munmap patch!"
+ epatch ${FILESDIR}/${P}.pmac_pmu.patch || die "Failed to apply pmac_pmu fix"
+ epatch ${FILESDIR}/${P}.CAN-2004-0010.patch || die "Failed to add the CAN-2004-0010 patch!"
+ epatch ${FILESDIR}/${P}.CAN-2004-0109.patch || die "Failed to patch CAN-2004-0109 vulnerability!"
+ epatch ${FILESDIR}/${P}.CAN-2004-0177.patch || die "Failed to add the CAN-2004-0177 patch!"
+ epatch ${FILESDIR}/${P}.CAN-2004-0178.patch || die "Failed to add the CAN-2004-0178 patch!"
+
+ cd ${WORKDIR}/${PF}
+ MY_ARCH=${ARCH}
+ EXTRAVERSION=-ppc-dev-${PR}
+ unset ARCH
+ kernel_universal_unpack
+ ARCH=${MY_ARCH}
+}
+
+src_install() {
+ dodir /usr/src
+ echo ">>> Copying sources..."
+ mv ${WORKDIR}/* ${D}/usr/src
+}
+
+pkg_postinst() {
+ if [ ! -e ${ROOT}usr/src/linux ]
+ then
+ ln -sf ${PF} ${ROOT}/usr/src/linux
+ fi
+}