summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Yamin <plasmaroo@gentoo.org>2004-02-19 09:44:39 +0000
committerTim Yamin <plasmaroo@gentoo.org>2004-02-19 09:44:39 +0000
commit79c7564b6d9958e79c9fb6f4ad6ec7f9767d2433 (patch)
tree99976ef1921d6bcd1fcab89ca5687fe8a8150e39 /sys-kernel/ppc-sources/files
parentIntroducing kazehakase (Manifest recommit) (diff)
downloadgentoo-2-79c7564b6d9958e79c9fb6f4ad6ec7f9767d2433.tar.gz
gentoo-2-79c7564b6d9958e79c9fb6f4ad6ec7f9767d2433.tar.bz2
gentoo-2-79c7564b6d9958e79c9fb6f4ad6ec7f9767d2433.zip
Added the patch for the mremap/munmap vulnerability. Bug #42024. Also masked older redundant versions of ppc-sources as "ppc".
Diffstat (limited to 'sys-kernel/ppc-sources/files')
-rw-r--r--sys-kernel/ppc-sources/files/digest-ppc-sources-2.4.24-r12
-rw-r--r--sys-kernel/ppc-sources/files/ppc-sources-2.4.24.munmap.patch27
2 files changed, 29 insertions, 0 deletions
diff --git a/sys-kernel/ppc-sources/files/digest-ppc-sources-2.4.24-r1 b/sys-kernel/ppc-sources/files/digest-ppc-sources-2.4.24-r1
new file mode 100644
index 000000000000..8cd5b99bfd6e
--- /dev/null
+++ b/sys-kernel/ppc-sources/files/digest-ppc-sources-2.4.24-r1
@@ -0,0 +1,2 @@
+MD5 1e055c42921b2396a559d84df4c3d9aa linux-2.4.24.tar.bz2 29837818
+MD5 a91a17fa04615c5bf56ab4b43c0b49a3 patch-2.4.24-benh0.bz2 213717
diff --git a/sys-kernel/ppc-sources/files/ppc-sources-2.4.24.munmap.patch b/sys-kernel/ppc-sources/files/ppc-sources-2.4.24.munmap.patch
new file mode 100644
index 000000000000..e120b35b7adb
--- /dev/null
+++ b/sys-kernel/ppc-sources/files/ppc-sources-2.4.24.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;
+ }