diff options
author | Tim Yamin <plasmaroo@gentoo.org> | 2004-11-27 17:22:56 +0000 |
---|---|---|
committer | Tim Yamin <plasmaroo@gentoo.org> | 2004-11-27 17:22:56 +0000 |
commit | 83025dfeed24c879c4bddbbb24eff911697c630f (patch) | |
tree | 1af8d5dfe4c2dd2ce85e35c53244e16d303aae9d /sys-kernel/alpha-sources | |
parent | stable on amd64 (Manifest recommit) (diff) | |
download | gentoo-2-83025dfeed24c879c4bddbbb24eff911697c630f.tar.gz gentoo-2-83025dfeed24c879c4bddbbb24eff911697c630f.tar.bz2 gentoo-2-83025dfeed24c879c4bddbbb24eff911697c630f.zip |
Version bump for the AF_UNIX and a.out security vulnerabilities; bugs #72452 and #72317.
Diffstat (limited to 'sys-kernel/alpha-sources')
-rw-r--r-- | sys-kernel/alpha-sources/ChangeLog | 10 | ||||
-rw-r--r-- | sys-kernel/alpha-sources/alpha-sources-2.4.21-r16.ebuild (renamed from sys-kernel/alpha-sources/alpha-sources-2.4.21-r15.ebuild) | 8 | ||||
-rw-r--r-- | sys-kernel/alpha-sources/files/alpha-sources.AF_UNIX.patch | 24 | ||||
-rw-r--r-- | sys-kernel/alpha-sources/files/alpha-sources.binfmt_a.out.patch | 63 | ||||
-rw-r--r-- | sys-kernel/alpha-sources/files/digest-alpha-sources-2.4.21-r16 (renamed from sys-kernel/alpha-sources/files/digest-alpha-sources-2.4.21-r15) | 0 |
5 files changed, 101 insertions, 4 deletions
diff --git a/sys-kernel/alpha-sources/ChangeLog b/sys-kernel/alpha-sources/ChangeLog index 4adf8c21f9d1..b0e4be4dd36f 100644 --- a/sys-kernel/alpha-sources/ChangeLog +++ b/sys-kernel/alpha-sources/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for sys-kernel/alpha-sources # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/alpha-sources/ChangeLog,v 1.37 2004/11/19 21:09:47 plasmaroo Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/alpha-sources/ChangeLog,v 1.38 2004/11/27 17:22:56 plasmaroo Exp $ + +*alpha-sources-2.4.21-r16 (27 Nov 2004) + + 27 Nov 2004; <plasmaroo@gentoo.org> -alpha-sources-2.4.21-r15.ebuild, + +alpha-sources-2.4.21-r16.ebuild, +files/alpha-sources.AF_UNIX.patch, + +files/alpha-sources.binfmt_a.out.patch: + Version bump for the AF_UNIX and a.out security vulnerabilities; bugs #72452 + and #72317. *alpha-sources-2.4.21-r15 (19 Nov 2004) diff --git a/sys-kernel/alpha-sources/alpha-sources-2.4.21-r15.ebuild b/sys-kernel/alpha-sources/alpha-sources-2.4.21-r16.ebuild index 476d584bb101..94a35ab5d985 100644 --- a/sys-kernel/alpha-sources/alpha-sources-2.4.21-r15.ebuild +++ b/sys-kernel/alpha-sources/alpha-sources-2.4.21-r16.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/alpha-sources/alpha-sources-2.4.21-r15.ebuild,v 1.1 2004/11/19 21:09:47 plasmaroo Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/alpha-sources/alpha-sources-2.4.21-r16.ebuild,v 1.1 2004/11/27 17:22:56 plasmaroo Exp $ # OKV=original kernel version, KV=patched kernel version. They can be the same. @@ -16,7 +16,7 @@ S=${WORKDIR}/linux-${KV} DESCRIPTION="Full sources for the Gentoo Linux Alpha kernel" SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2 - mirror://gentoo/patches-${KV/15/3}.tar.bz2 + mirror://gentoo/patches-${KV/16/3}.tar.bz2 http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0415.patch http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${P}-CAN-2004-0814.patch" SLOT="${KV}" @@ -25,7 +25,7 @@ KEYWORDS="alpha -sparc -x86 -ppc -hppa -mips" src_unpack() { unpack ${A} mv linux-${OKV} linux-${KV} || die - cd ${WORKDIR}/${KV/15/1} + cd ${WORKDIR}/${KV/16/1} # This is the crypt USE flag, keeps {USAGI/superfreeswan/patch-int/loop-jari} if ! use crypt; then @@ -82,6 +82,8 @@ src_unpack() { epatch ${FILESDIR}/${PN}.XDRWrapFix.patch || die "Failed to apply the kNFSd XDR fix!" epatch ${FILESDIR}/${PN}.binfmt_elf.patch || die "Failed to apply the binfmt_elf fix!" epatch ${FILESDIR}/${PN}.smbfs.patch || die "Failed to apply the SMBFS fix!" + epatch ${FILESDIR}/${PN}.AF_UNIX.patch || die "Failed to apply the AF_UNIX patch!" + epatch ${FILESDIR}/${PN}.binfmt_a.out.patch || die "Failed to apply the a.out patch!" # Fix multi-line literal in include/asm-alpha/xor.h -- see bug 38354 # If this script "dies" then that means it's no longer applicable. diff --git a/sys-kernel/alpha-sources/files/alpha-sources.AF_UNIX.patch b/sys-kernel/alpha-sources/files/alpha-sources.AF_UNIX.patch new file mode 100644 index 000000000000..6ced78404a2d --- /dev/null +++ b/sys-kernel/alpha-sources/files/alpha-sources.AF_UNIX.patch @@ -0,0 +1,24 @@ +--- linux-2.4.27/net/unix/af_unix.c 2004-11-24 08:23:21 -08:00 ++++ linux-2.4.28/net/unix/af_unix.c 2004-11-24 08:23:21 -08:00 +@@ -1403,9 +1403,11 @@ + + msg->msg_namelen = 0; + ++ down(&sk->protinfo.af_unix.readsem); ++ + skb = skb_recv_datagram(sk, flags, noblock, &err); + if (!skb) +- goto out; ++ goto out_unlock; + + wake_up_interruptible(&sk->protinfo.af_unix.peer_wait); + +@@ -1449,6 +1451,8 @@ + + out_free: + skb_free_datagram(sk,skb); ++out_unlock: ++ up(&sk->protinfo.af_unix.readsem); + out: + return err; + } diff --git a/sys-kernel/alpha-sources/files/alpha-sources.binfmt_a.out.patch b/sys-kernel/alpha-sources/files/alpha-sources.binfmt_a.out.patch new file mode 100644 index 000000000000..4644ae28bce4 --- /dev/null +++ b/sys-kernel/alpha-sources/files/alpha-sources.binfmt_a.out.patch @@ -0,0 +1,63 @@ +diff -Nru linux-2.4.28/fs/exec.c linux-2.4.28.plasmaroo/fs/exec.c +--- linux-2.4.28/fs/exec.c 2004-04-15 10:44:45 -07:00 ++++ linux-2.4.28.plasmaroo/fs/exec.c 2004-11-12 12:02:40 -08:00 +@@ -342,6 +342,7 @@ int setup_arg_pages(struct linux_binprm + + down_write(¤t->mm->mmap_sem); + { ++ struct vm_area_struct *vma; + mpnt->vm_mm = current->mm; + mpnt->vm_start = PAGE_MASK & (unsigned long) bprm->p; + mpnt->vm_end = STACK_TOP; +@@ -351,6 +352,12 @@ int setup_arg_pages(struct linux_binprm + mpnt->vm_pgoff = 0; + mpnt->vm_file = NULL; + mpnt->vm_private_data = (void *) 0; ++ vma = find_vma(current->mm, mpnt->vm_start); ++ if (vma) { ++ up_write(¤t->mm->mmap_sem); ++ kmem_cache_free(vm_area_cachep, mpnt); ++ return -ENOMEM; ++ } + insert_vm_struct(current->mm, mpnt); + current->mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; + } +diff -Nru linux-2.4.28/fs/exec.c linux-2.4.28.plasmaroo/fs/exec.c +--- linux-2.4.28/fs/binfmt_aout.c 2002-02-04 23:54:04 -08:00 ++++ linux-2.4.28.plasmaroo/fs/binfmt_aout.c 2004-11-12 11:55:14 -08:00 +@@ -39,13 +39,18 @@ static struct linux_binfmt aout_format = + NULL, THIS_MODULE, load_aout_binary, load_aout_library, aout_core_dump, PAGE_SIZE + }; + +-static void set_brk(unsigned long start, unsigned long end) ++#define BAD_ADDR(x) ((unsigned long)(x) >= TASK_SIZE) ++ ++static int set_brk(unsigned long start, unsigned long end) + { + start = PAGE_ALIGN(start); + end = PAGE_ALIGN(end); +- if (end <= start) +- return; +- do_brk(start, end - start); ++ if (end > start) { ++ unsigned long addr = do_brk(start, end - start); ++ if (BAD_ADDR(addr)) ++ return addr; ++ } ++ return 0; + } + + /* +@@ -405,7 +410,11 @@ static int load_aout_binary(struct linux + beyond_if: + set_binfmt(&aout_format); + +- set_brk(current->mm->start_brk, current->mm->brk); ++ retval = set_brk(current->mm->start_brk, current->mm->brk); ++ if (retval < 0) { ++ send_sig(SIGKILL, current, 0); ++ return retval; ++ } + + retval = setup_arg_pages(bprm); + if (retval < 0) { diff --git a/sys-kernel/alpha-sources/files/digest-alpha-sources-2.4.21-r15 b/sys-kernel/alpha-sources/files/digest-alpha-sources-2.4.21-r16 index d1abbfcbcf8a..d1abbfcbcf8a 100644 --- a/sys-kernel/alpha-sources/files/digest-alpha-sources-2.4.21-r15 +++ b/sys-kernel/alpha-sources/files/digest-alpha-sources-2.4.21-r16 |