summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Yamin <plasmaroo@gentoo.org>2004-04-15 10:52:30 +0000
committerTim Yamin <plasmaroo@gentoo.org>2004-04-15 10:52:30 +0000
commit1b7eb9cfb56c6f49cb169075a9c116b08fed7430 (patch)
treef868b853980dd1483763b01a309d2105ecb125bd /sys-kernel/ppc-sources
parentVersion bump for the CAN-2004-0109 issue; bug #47881. (Manifest recommit) (diff)
downloadgentoo-2-1b7eb9cfb56c6f49cb169075a9c116b08fed7430.tar.gz
gentoo-2-1b7eb9cfb56c6f49cb169075a9c116b08fed7430.tar.bz2
gentoo-2-1b7eb9cfb56c6f49cb169075a9c116b08fed7430.zip
Version bump for the CAN-2004-0109 issue; bug #47881.
Diffstat (limited to 'sys-kernel/ppc-sources')
-rw-r--r--sys-kernel/ppc-sources/ChangeLog8
-rw-r--r--sys-kernel/ppc-sources/files/digest-ppc-sources-2.4.24-r32
-rw-r--r--sys-kernel/ppc-sources/files/ppc-sources-2.4.24.CAN-2004-0109.patch87
-rw-r--r--sys-kernel/ppc-sources/ppc-sources-2.4.24-r3.ebuild82
4 files changed, 178 insertions, 1 deletions
diff --git a/sys-kernel/ppc-sources/ChangeLog b/sys-kernel/ppc-sources/ChangeLog
index dddb141ddbca..d1dc8ba4c771 100644
--- a/sys-kernel/ppc-sources/ChangeLog
+++ b/sys-kernel/ppc-sources/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-kernel/ppc-sources
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ppc-sources/ChangeLog,v 1.37 2004/04/12 16:36:23 aliz Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ppc-sources/ChangeLog,v 1.38 2004/04/15 10:52:30 plasmaroo Exp $
+
+*ppc-sources-2.4.24-r3 (15 Apr 2004)
+
+ 15 Apr 2004; <plasmaroo@gentoo.org> ppc-sources-2.4.24-r3.ebuild,
+ files/ppc-sources-2.4.24.CAN-2004-0109.patch:
+ Version bump for the CAN-2004-0109 issue; bug #47881.
12 Apr 2004; Daniel Ahlberg <aliz@gentoo.org> ppc-sources-2.4.24-r2.ebuild:
Add IUSE=
diff --git a/sys-kernel/ppc-sources/files/digest-ppc-sources-2.4.24-r3 b/sys-kernel/ppc-sources/files/digest-ppc-sources-2.4.24-r3
new file mode 100644
index 000000000000..e0aa79aa0c70
--- /dev/null
+++ b/sys-kernel/ppc-sources/files/digest-ppc-sources-2.4.24-r3
@@ -0,0 +1,2 @@
+MD5 1e055c42921b2396a559d84df4c3d9aa linux-2.4.24.tar.bz2 29837818
+MD5 58bf0f69df04d07ed73237ee63ac09ac patch-2.4.24-ppc-r2.bz2 1706398
diff --git a/sys-kernel/ppc-sources/files/ppc-sources-2.4.24.CAN-2004-0109.patch b/sys-kernel/ppc-sources/files/ppc-sources-2.4.24.CAN-2004-0109.patch
new file mode 100644
index 000000000000..d02b51c57fc6
--- /dev/null
+++ b/sys-kernel/ppc-sources/files/ppc-sources-2.4.24.CAN-2004-0109.patch
@@ -0,0 +1,87 @@
+--- linux/fs/isofs/rock.c.orig
++++ linux/fs/isofs/rock.c
+@@ -14,6 +14,7 @@
+ #include <linux/slab.h>
+ #include <linux/pagemap.h>
+ #include <linux/smp_lock.h>
++#include <asm/page.h>
+
+ #include "rock.h"
+
+@@ -419,7 +420,7 @@
+ return 0;
+ }
+
+-static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr)
++static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit)
+ {
+ int slen;
+ int rootflag;
+@@ -431,16 +432,25 @@
+ rootflag = 0;
+ switch (slp->flags & ~1) {
+ case 0:
++ if (slp->len > plimit - rpnt)
++ return NULL;
+ memcpy(rpnt, slp->text, slp->len);
+ rpnt+=slp->len;
+ break;
++ case 2:
++ if (rpnt >= plimit)
++ return NULL;
++ *rpnt++='.';
++ break;
+ case 4:
++ if (2 > plimit - rpnt)
++ return NULL;
+ *rpnt++='.';
+- /* fallthru */
+- case 2:
+ *rpnt++='.';
+ break;
+ case 8:
++ if (rpnt >= plimit)
++ return NULL;
+ rootflag = 1;
+ *rpnt++='/';
+ break;
+@@ -457,17 +467,23 @@
+ * If there is another SL record, and this component
+ * record isn't continued, then add a slash.
+ */
+- if ((!rootflag) && (rr->u.SL.flags & 1) && !(oldslp->flags & 1))
++ if ((!rootflag) && (rr->u.SL.flags & 1) &&
++ !(oldslp->flags & 1)) {
++ if (rpnt >= plimit)
++ return NULL;
+ *rpnt++='/';
++ }
+ break;
+ }
+
+ /*
+ * If this component record isn't continued, then append a '/'.
+ */
+- if (!rootflag && !(oldslp->flags & 1))
++ if (!rootflag && !(oldslp->flags & 1)) {
++ if (rpnt >= plimit)
++ return NULL;
+ *rpnt++='/';
+-
++ }
+ }
+ return rpnt;
+ }
+@@ -548,7 +564,10 @@
+ CHECK_SP(goto out);
+ break;
+ case SIG('S', 'L'):
+- rpnt = get_symlink_chunk(rpnt, rr);
++ rpnt = get_symlink_chunk(rpnt, rr,
++ link + (PAGE_SIZE - 1));
++ if (rpnt == NULL)
++ goto out;
+ break;
+ case SIG('C', 'E'):
+ /* This tells is if there is a continuation record */
+
diff --git a/sys-kernel/ppc-sources/ppc-sources-2.4.24-r3.ebuild b/sys-kernel/ppc-sources/ppc-sources-2.4.24-r3.ebuild
new file mode 100644
index 000000000000..980c55ccd0c6
--- /dev/null
+++ b/sys-kernel/ppc-sources/ppc-sources-2.4.24-r3.ebuild
@@ -0,0 +1,82 @@
+# 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/ppc-sources-2.4.24-r3.ebuild,v 1.1 2004/04/15 10:52:30 plasmaroo Exp $
+
+# 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
+# pmac_pmu fix, see bug #41668
+# munmap fix, see bug #42024
+
+ETYPE="sources"
+inherit kernel
+IUSE=""
+
+OKV="2.4.24"
+
+EXTRAVERSION="`echo ${PV}-${PN/-sources/}-${PR} | \
+ sed -e 's/[0-9]\+\.[0-9]\+\.[0-9]\+\(.*\)/\1/'`"
+
+KV=${PV}-${PN/-sources/}-${PR}
+S=${WORKDIR}/linux-${KV}
+
+inherit eutils
+
+DESCRIPTION="Full sources for the linux kernel 2.4.24 with benh's patchset"
+SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2
+ mirror://gentoo/patch-${KV/r3/r2}.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/r3/r2}.bz2 | patch -p1 || die "Patching failed!"
+ epatch ${FILESDIR}/${P}.CAN-2004-0109.patch || die "Failed to patch CAN-2004-0109 vulnerability!"
+ find . -iname "*~" | xargs rm 2> /dev/null
+
+ # Gentoo Linux uses /boot, so fix 'make install' to work properly
+ # also fix the EXTRAVERSION
+ mv Makefile Makefile.orig
+ sed -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' \
+ -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" \
+ Makefile.orig >Makefile || die # test, remove me if Makefile ok
+ rm Makefile.orig
+
+ cd ${WORKDIR}/${PF}
+ MY_ARCH=${ARCH}
+ unset ARCH
+
+ # Sometimes we have icky kernel symbols; this seems to get rid of them
+ make mrproper || die "make mrproper died"
+ 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
+}