summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Yamin <plasmaroo@gentoo.org>2004-02-18 21:12:05 +0000
committerTim Yamin <plasmaroo@gentoo.org>2004-02-18 21:12:05 +0000
commita06fd405e6c3f1a5c9cd1d39c7d265b7e1a167a9 (patch)
tree63d36e81c2333c1b0c5fd674eca2797ac61517d0 /sys-kernel/win4lin-sources
parentupdate KEYWORDS (diff)
downloadgentoo-2-a06fd405e6c3f1a5c9cd1d39c7d265b7e1a167a9.tar.gz
gentoo-2-a06fd405e6c3f1a5c9cd1d39c7d265b7e1a167a9.tar.bz2
gentoo-2-a06fd405e6c3f1a5c9cd1d39c7d265b7e1a167a9.zip
Added the patch for the mremap/munmap vulnerability. Bug #42024.
Diffstat (limited to 'sys-kernel/win4lin-sources')
-rw-r--r--sys-kernel/win4lin-sources/ChangeLog14
-rw-r--r--sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.22-r13
-rw-r--r--sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r2 (renamed from sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r1)0
-rw-r--r--sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.0-r13
-rw-r--r--sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.2-r13
-rw-r--r--sys-kernel/win4lin-sources/files/win4lin-sources-2.4.munmap.patch27
-rw-r--r--sys-kernel/win4lin-sources/files/win4lin-sources-2.6.munmap.patch53
-rw-r--r--sys-kernel/win4lin-sources/win4lin-sources-2.4.22-r1.ebuild43
-rw-r--r--sys-kernel/win4lin-sources/win4lin-sources-2.4.23-r2.ebuild (renamed from sys-kernel/win4lin-sources/win4lin-sources-2.4.23-r1.ebuild)3
-rw-r--r--sys-kernel/win4lin-sources/win4lin-sources-2.6.2-r1.ebuild (renamed from sys-kernel/win4lin-sources/win4lin-sources-2.6.0-r1.ebuild)3
10 files changed, 99 insertions, 53 deletions
diff --git a/sys-kernel/win4lin-sources/ChangeLog b/sys-kernel/win4lin-sources/ChangeLog
index 976c09f54c44..b431cda3573b 100644
--- a/sys-kernel/win4lin-sources/ChangeLog
+++ b/sys-kernel/win4lin-sources/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for sys-kernel/win4lin-sources
-# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/ChangeLog,v 1.12 2004/01/06 21:48:33 plasmaroo Exp $
+# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/ChangeLog,v 1.13 2004/02/18 21:12:04 plasmaroo Exp $
+
+*win4lin-sources-2.6.2-r1 (18 Feb 2004)
+
+ 18 Feb 2004; <plasmaroo@gentoo.org> win4lin-sources-2.4.22-r1.ebuild,
+ win4lin-sources-2.4.23-r1.ebuild, win4lin-sources-2.4.23-r2.ebuild,
+ win4lin-sources-2.6.0-r1.ebuild, win4lin-sources-2.6.2-r1.ebuild,
+ files/win4lin-sources-2.4.munmap.patch,
+ files/win4lin-sources-2.6.munmap.patch:
+ Added the patch for the mremap/munmap vulnerability. Bug #42024.
+ Removed vulnerable versions.
*win4lin-sources-2.6.0-r1 (06 Jan 2004)
diff --git a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.22-r1 b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.22-r1
deleted file mode 100644
index c97f53086d19..000000000000
--- a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.22-r1
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 75dc85149b06ac9432106b8941eb9f7b linux-2.4.22.tar.bz2 29528612
-MD5 32e4cda45fa0f090dffa157bc4504a4e mki-adapter.patch 181483
-MD5 bd9303c330720b94176933046cbba913 Kernel-Win4Lin3-2.4.22.patch 22733
diff --git a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r1 b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r2
index c0bee3c77be1..c0bee3c77be1 100644
--- a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r1
+++ b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r2
diff --git a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.0-r1 b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.0-r1
deleted file mode 100644
index a276a12a67b4..000000000000
--- a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.0-r1
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 c9e73737002521a347d2e6617beb56cc linux-2.6.0.tar.bz2 33255278
-MD5 5ad006f074e11ed9c650d3b99b166830 mki-adapter26_1_3_3.patch 126268
-MD5 a04de354fb5bc4fd22e5829512706e95 Kernel-Win4Lin3-2.6.0.patch 26736
diff --git a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.2-r1 b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.2-r1
new file mode 100644
index 000000000000..62d70d246ade
--- /dev/null
+++ b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.2-r1
@@ -0,0 +1,3 @@
+MD5 2a745088acba366f22f8bd3e284a84d4 linux-2.6.2.tar.bz2 33899733
+MD5 5ad006f074e11ed9c650d3b99b166830 mki-adapter26_1_3_3.patch 126268
+MD5 f36c55447a01d38fa56a8236b0321b52 Kernel-Win4Lin3-2.6.2.patch 26601
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.munmap.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.munmap.patch
new file mode 100644
index 000000000000..e120b35b7adb
--- /dev/null
+++ b/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.munmap.patch
@@ -0,0 +1,27 @@
+diff -ur linux-2.4.25-rc3/mm/mremap.c linux-2.4.25-rc4/mm/mremap.c
+--- linux-2.4.25-rc3/mm/mremap.c 2004-02-18 13:56:01.000000000 +0000
++++ linux-2.4.25-rc4/mm/mremap.c 2004-02-18 13:49:08.000000000 +0000
+@@ -258,16 +258,20 @@
+ if ((addr <= new_addr) && (addr+old_len) > new_addr)
+ goto out;
+
+- do_munmap(current->mm, new_addr, new_len);
++ ret = do_munmap(current->mm, new_addr, new_len);
++ if (ret && new_len)
++ goto out;
+ }
+
+ /*
+ * Always allow a shrinking remap: that just unmaps
+ * the unnecessary pages..
+ */
+- ret = addr;
+ if (old_len >= new_len) {
+- do_munmap(current->mm, addr+new_len, old_len - new_len);
++ ret = do_munmap(current->mm, addr+new_len, old_len - new_len);
++ if (ret && old_len != new_len)
++ goto out;
++ ret = addr;
+ if (!(flags & MREMAP_FIXED) || (new_addr == addr))
+ goto out;
+ }
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.munmap.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.munmap.patch
new file mode 100644
index 000000000000..47a199c870db
--- /dev/null
+++ b/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.munmap.patch
@@ -0,0 +1,53 @@
+diff -Naur 2.6.2/mm/mremap.c 2.6.3/mm/mremap.c
+--- 2.6.2/mm/mremap.c 2004-02-18 03:29:48.000000000 +0100
++++ 2.6.3/mm/mremap.c 2004-02-18 10:21:20.000000000 +0100
+@@ -135,15 +135,17 @@
+ dst = alloc_one_pte_map(mm, new_addr);
+ if (src == NULL)
+ src = get_one_pte_map_nested(mm, old_addr);
+- error = copy_one_pte(vma, old_addr, src, dst, &pte_chain);
+- pte_unmap_nested(src);
+- pte_unmap(dst);
+- } else
+ /*
+- * Why do we need this flush ? If there is no pte for
+- * old_addr, then there must not be a pte for it as well.
++ * Since alloc_one_pte_map can drop and re-acquire
++ * page_table_lock, we should re-check the src entry...
+ */
+- flush_tlb_page(vma, old_addr);
++ if (src) {
++ error = copy_one_pte(vma, old_addr, src,
++ dst, &pte_chain);
++ pte_unmap_nested(src);
++ }
++ pte_unmap(dst);
++ }
+ spin_unlock(&mm->page_table_lock);
+ pte_chain_free(pte_chain);
+ out:
+@@ -346,7 +348,9 @@
+ if ((addr <= new_addr) && (addr+old_len) > new_addr)
+ goto out;
+
+- do_munmap(current->mm, new_addr, new_len);
++ ret = do_munmap(current->mm, new_addr, new_len);
++ if (ret)
++ goto out;
+ }
+
+ /*
+@@ -354,9 +358,11 @@
+ * the unnecessary pages..
+ * do_munmap does all the needed commit accounting
+ */
+- ret = addr;
+ if (old_len >= new_len) {
+- do_munmap(current->mm, addr+new_len, old_len - new_len);
++ ret = do_munmap(current->mm, addr+new_len, old_len - new_len);
++ if (ret && old_len != new_len)
++ goto out;
++ ret = addr;
+ if (!(flags & MREMAP_FIXED) || (new_addr == addr))
+ goto out;
+ old_len = new_len;
diff --git a/sys-kernel/win4lin-sources/win4lin-sources-2.4.22-r1.ebuild b/sys-kernel/win4lin-sources/win4lin-sources-2.4.22-r1.ebuild
deleted file mode 100644
index b3977eaa8b97..000000000000
--- a/sys-kernel/win4lin-sources/win4lin-sources-2.4.22-r1.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2004 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/win4lin-sources-2.4.22-r1.ebuild,v 1.2 2004/01/07 00:16:47 plasmaroo Exp $
-
-IUSE="build"
-
-# OKV=original kernel version, KV=patched kernel version. They can be the same.
-
-ETYPE="sources"
-
-inherit kernel
-
-OKV="2.4.22"
-KV="2.4.22-win4lin"
-EXTRAVERSION="-win4lin"
-
-S=${WORKDIR}/linux-${KV}
-
-DESCRIPTION="Full sources for the linux kernel with win4lin support"
-SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2
- http://www.netraverse.com/member/downloads/files/mki-adapter.patch
- http://www.netraverse.com/member/downloads/files/Kernel-Win4Lin3-${OKV}.patch"
-
-KEYWORDS="x86"
-SLOT="${KV}"
-
-src_unpack() {
-
- unpack linux-${OKV}.tar.bz2
- mv linux-${OKV} linux-${KV} || die
-
- epatch ${DISTDIR}/Kernel-Win4Lin3-${OKV}.patch || die "Error: Win4Lin3 patch failed!"
-
- cd linux-${KV}
- cat ${DISTDIR}/mki-adapter.patch | patch -p1 &> /dev/null || die "Error: mki-adapter patch failed!"
-
- epatch ${FILESDIR}/do_brk_fix.patch || die "Failed to patch do_brk() vulnerability!"
- epatch ${FILESDIR}/${PN}-2.4.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!"
- epatch ${FILESDIR}/${PN}-2.4.rtc_fix.patch || die "Failed to patch RTC vulnerabilities!"
-
- kernel_universal_unpack
-
-}
diff --git a/sys-kernel/win4lin-sources/win4lin-sources-2.4.23-r1.ebuild b/sys-kernel/win4lin-sources/win4lin-sources-2.4.23-r2.ebuild
index 57788b3d59b7..aec76ff0c6b3 100644
--- a/sys-kernel/win4lin-sources/win4lin-sources-2.4.23-r1.ebuild
+++ b/sys-kernel/win4lin-sources/win4lin-sources-2.4.23-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/win4lin-sources-2.4.23-r1.ebuild,v 1.2 2004/01/07 00:16:47 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/win4lin-sources-2.4.23-r2.ebuild,v 1.1 2004/02/18 21:12:04 plasmaroo Exp $
# OKV=original kernel version, KV=patched kernel version. They can be the same.
@@ -35,6 +35,7 @@ src_unpack() {
epatch ${FILESDIR}/${PN}-2.4.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!"
epatch ${FILESDIR}/${PN}-2.4.rtc_fix.patch || die "Failed to patch RTC vulnerabilities!"
+ epatch ${FILESDIR}/${PN}-2.4.munmap.patch || die "Failed to apply munmap patch!"
kernel_universal_unpack
diff --git a/sys-kernel/win4lin-sources/win4lin-sources-2.6.0-r1.ebuild b/sys-kernel/win4lin-sources/win4lin-sources-2.6.2-r1.ebuild
index e79f541c78cf..c0f18bba3e64 100644
--- a/sys-kernel/win4lin-sources/win4lin-sources-2.6.0-r1.ebuild
+++ b/sys-kernel/win4lin-sources/win4lin-sources-2.6.2-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/win4lin-sources-2.6.0-r1.ebuild,v 1.1 2004/01/06 21:48:33 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/win4lin-sources-2.6.2-r1.ebuild,v 1.1 2004/02/18 21:12:04 plasmaroo Exp $
# OKV=original kernel version, KV=patched kernel version. They can be the same.
OKV=${PV}
@@ -42,6 +42,7 @@ src_unpack() {
eend $?
epatch ${FILESDIR}/${PN}-2.6.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!"
+ epatch ${FILESDIR}/${PN}-2.6.munmap.patch || die "Failed to apply munmap patch!"
unset ARCH
# Sometimes we have icky kernel symbols; this seems to get rid of them