Security bump; fixes bugs #77025 and #77094.
authorTim Yamin <plasmaroo@gentoo.org>
Sun, 9 Jan 2005 16:21:03 +0000 (16:21 +0000)
committerTim Yamin <plasmaroo@gentoo.org>
Sun, 9 Jan 2005 16:21:03 +0000 (16:21 +0000)
sys-kernel/wolk-sources/ChangeLog
sys-kernel/wolk-sources/Manifest
sys-kernel/wolk-sources/files/digest-wolk-sources-4.11-r16 [moved from sys-kernel/wolk-sources/files/digest-wolk-sources-4.11-r15 with 78% similarity]
sys-kernel/wolk-sources/files/digest-wolk-sources-4.14-r13 [moved from sys-kernel/wolk-sources/files/digest-wolk-sources-4.14-r12 with 66% similarity]
sys-kernel/wolk-sources/files/digest-wolk-sources-4.9-r20 [moved from sys-kernel/wolk-sources/files/digest-wolk-sources-4.9-r19 with 94% similarity]
sys-kernel/wolk-sources/files/wolk-sources-4.9s.brk-locked.patch [new file with mode: 0644]
sys-kernel/wolk-sources/files/wolk-sources.77094.patch [new file with mode: 0644]
sys-kernel/wolk-sources/files/wolk-sources.brk-locked.patch [new file with mode: 0644]
sys-kernel/wolk-sources/wolk-sources-4.11-r16.ebuild [moved from sys-kernel/wolk-sources/wolk-sources-4.11-r15.ebuild with 89% similarity]
sys-kernel/wolk-sources/wolk-sources-4.14-r13.ebuild [moved from sys-kernel/wolk-sources/wolk-sources-4.14-r12.ebuild with 89% similarity]
sys-kernel/wolk-sources/wolk-sources-4.9-r20.ebuild [moved from sys-kernel/wolk-sources/wolk-sources-4.9-r19.ebuild with 94% similarity]

index fe87d98569e3853bd8704d27c64ca49e08a08663..d2b8f65fcd3e5dde21403b7c2e7e28ec20592e1a 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for sys-kernel/wolk-sources
-# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/wolk-sources/ChangeLog,v 1.63 2004/12/24 19:42:58 plasmaroo Exp $
+# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/wolk-sources/ChangeLog,v 1.64 2005/01/09 16:21:03 plasmaroo Exp $
+
+*wolk-sources-4.14-r13 (09 Jan 2005)
+
+  09 Jan 2005; <plasmaroo@gentoo.org> -wolk-sources-4.11-r15.ebuild,
+  +wolk-sources-4.11-r16.ebuild, -wolk-sources-4.14-r12.ebuild,
+  +wolk-sources-4.14-r13.ebuild, -wolk-sources-4.9-r19.ebuild,
+  +wolk-sources-4.9-r20.ebuild, +files/wolk-sources-4.9s.brk-locked.patch,
+  +files/wolk-sources.77094.patch, +files/wolk-sources.brk-locked.patch:
+  Security bump; fixes bugs #77025 and #77094.
 
 *wolk-sources-4.14-r12 (24 Dec 2004)
 
index 881826ee87dc1367b20578dbb6f02e77ffd61fb9..9b468d0845be9b785cefb1ddf5773e994ce757d6 100644 (file)
@@ -1,36 +1,38 @@
-MD5 95ef00cc3e93d153a381533c87cbc747 ChangeLog 21093
-MD5 fa40fe208bffd704d78fc7e4b44cf049 wolk-sources-4.14-r12.ebuild 2716
-MD5 fd0fab9657cbbb5bb971b2583c299bac wolk-sources-4.11-r15.ebuild 3739
+MD5 4a315e02cb6b7800f9f93fd925c85d37 ChangeLog 21523
+MD5 85a9f3fc28aedabb350688fa1a0a7518 wolk-sources-4.14-r13.ebuild 2787
+MD5 3cb84beafb972e1b22274b07a8992158 wolk-sources-4.9-r20.ebuild 6953
 MD5 6fd890f722da90b57c3c3f37ff79c75e metadata.xml 226
-MD5 d1dac2fbdd62f39a8c8927914205c5c9 wolk-sources-4.9-r19.ebuild 6767
+MD5 e818c213fdd33c87555010b52deefca7 wolk-sources-4.11-r16.ebuild 3920
 MD5 0f66013f643c79c97fda489618a4e2fd files/wolk-sources.CAN-2004-0535.patch 476
 MD5 e47f4118ace22fbcd917d36fdc648c3c files/wolk-sources-4.9s.CAN-2004-1056.patch 11020
 MD5 d5efa40a4cca5b1a29d16204dd1f3a32 files/wolk-4.9s-page.h.patch 635
 MD5 b0a1f80aff51d6601e8924329023b241 files/wolk-sources.AF_UNIX.patch 515
 MD5 aa193a78c4f2fdd248f992db935c7895 files/wolk-sources-4.9s.CAN-2004-0010.patch 6065
 MD5 ac42024b6e6ee1e2165914db4b22a61c files/wolk-sources.CAN-2004-0178.patch 424
-MD5 30e9fd1fbb477c5fc965dbf0fe41f3e8 files/digest-wolk-sources-4.9-r19 1480
 MD5 21f3a4f186017d925067335e24db36a1 files/wolk-sources.CAN-2004-0109.patch 1877
 MD5 94da93ba922ec8143b6d7a8470747fb5 files/wolk-4.9s-setup.c.patch 531
 MD5 a4cb2b30bc0ad5f4f3913a6ec2ddfe1a files/wolk-sources.binfmt_elf.patch 2618
 MD5 6ed89b8ac0b47a4c25d3a616ef9245cc files/wolk-sources.vma.patch 11369
+MD5 1d78b90e495e432432e095ee47bbc2fc files/wolk-sources.77094.patch 452
 MD5 5bf9836a632a861728d33f9736bb7431 files/wolk-sources.CAN-2004-0133.patch 427
 MD5 c9da1bc82b906f6abc648c056e7bf662 files/wolk-sources.FPULockup-53804.patch 354
 MD5 dc18e982f8149588a291956481885a8c files/wolk-sources.CAN-2004-0495.patch 17549
 MD5 2ca46d61e534cfd18a965e9ae8e870e2 files/binfmt_elf.patch 2347
 MD5 c460ea130cb4ae84a5063ba044e3ce72 files/wolk-sources.CAN-2004-0427.patch 460
 MD5 3bdf00d5f80fe9dfbfe8220e076cd04c files/wolk-sources.CAN-2004-0497.patch 707
+MD5 29e531cdd3f2effce5e31a1f2afb5b5d files/wolk-sources-4.9s.brk-locked.patch 8912
 MD5 b9a94233e1457787352e5f85e3e3582d files/wolk-sources.binfmt_a.out.patch 2009
 MD5 d4a740ae56c2049247083af387a22a85 files/wolk-sources.CAN-2004-0394.patch 350
 MD5 528da73c9e4a6fb017561e51dc0ab815 files/wolk-sources.CAN-2003-0643.patch 747
 MD5 1e1fe7bb98c80db4644f4b7fd7dd5d32 files/wolk-sources.smbfs.patch 3434
-MD5 895c08b40b862ad74da9d49232ec83f1 files/digest-wolk-sources-4.11-r15 392
 MD5 d4ef22c0e842ad7a48980130bf579e6e files/wolk-4.9s-speedstep.c.patch 777
+MD5 c044945955ee6197962aa12240fb7954 files/digest-wolk-sources-4.9-r20 1483
+MD5 bf7030a67c46e734e2a7ea9265a45191 files/wolk-sources.brk-locked.patch 8859
 MD5 de75cfa969ed092578d9ddda6c5be334 files/wolk-sources.CAN-2004-0181.patch 1233
 MD5 60d25ff310fc6abfdce39ec9e47345af files/wolk-sources.CAN-2004-0685.patch 2809
 MD5 d1ccc2047be533c992f67270a150a210 files/wolk-sources.cmdlineLeak.patch 388
 MD5 e7b64a09d10444ca699e9696a4035c3e files/patches.txt 12893
-MD5 696de19810e15bd0d4373c0256efb3e0 files/digest-wolk-sources-4.14-r12 248
+MD5 3efc989563d2231b95bfacd58b102c3b files/digest-wolk-sources-4.14-r13 251
 MD5 e77a93fdf26f06cf3ea5080b27211725 files/wolk-sources.CAN-2003-0985.patch 414
 MD5 370cc17582bbb17605090009d24eba51 files/wolk-sources.CAN-2004-1016.patch 2168
 MD5 2b3ddb8b8b15f8da35ade38544b57857 files/wolk-sources.XDRWrapFix.patch 1499
@@ -38,5 +40,6 @@ MD5 92f1b3aa68de326081b75653a77d64cf files/wolk-sources-4.9s.CAN-2004-0685.patch
 MD5 eaeda68a619caaddd5b8fdc5e7c39932 files/wolk-sources.CAN-2004-0177.patch 384
 MD5 757ee1239c3f14645ccea3640d551e11 files/wolk-sources.CAN-2004-1056.patch 11249
 MD5 a61e57d5483a06f20da339d91f98fbb8 files/wolk-sources-4.9s.rtc_fix.patch 6769
+MD5 95368f06c3d00c867341f5b34847d5f4 files/digest-wolk-sources-4.11-r16 395
 MD5 e637c6fa41097ea2c4693d0766f2e1c5 files/do_brk_fix.patch 242
 MD5 21ebf0ddc4b8ec4013470c4d243cd03b files/wolk-sources-4.9s.munmap.patch 826
similarity index 78%
rename from sys-kernel/wolk-sources/files/digest-wolk-sources-4.11-r15
rename to sys-kernel/wolk-sources/files/digest-wolk-sources-4.11-r16
index 49ba6c31355644216f85c43f54a55ede224cec27..fc2b3f589d273a616aa78b4c201ec0d023408593 100644 (file)
@@ -2,4 +2,4 @@ MD5 c439d5c93d7fc9a1480a90842465bb97 linux-2.4.20.tar.bz2 27421046
 MD5 7ab3d945def110a2ee78ce88175c7abe linux-2.4.20-wolk4.10s.patch.bz2 12773140
 MD5 befb7511aa4075255bb7755fb961c0e5 linux-2.4.20-wolk4.10s-to-4.11s.patch.bz2 88660
 MD5 5483fa54161c0dd4b2762332a24c3b8a wolk-sources-4.11-CAN-2004-0415.patch 83257
-MD5 534bb4c1e4a2cc5cd11b2bd3a3a74a3a wolk-sources-4.9-CAN-2004-0814.patch 82272
+MD5 eda46d7ee8f0a5e062c1f5e326d854ca wolk-sources-4.9-CAN-2004-0814.2.patch 136752
similarity index 66%
rename from sys-kernel/wolk-sources/files/digest-wolk-sources-4.14-r12
rename to sys-kernel/wolk-sources/files/digest-wolk-sources-4.14-r13
index 0d04b5cf57f2d9bff3a518046a4e7750669040ab..5d30e64951870eaad0a999d2143accdc42cbb7d0 100644 (file)
@@ -1,3 +1,3 @@
 MD5 5b2e099686c30bc9c848072a43b95c00 linux-2.4.20-wolk4.14-fullkernel.tar.bz2 36588181
 MD5 5483fa54161c0dd4b2762332a24c3b8a wolk-sources-4.11-CAN-2004-0415.patch 83257
-MD5 534bb4c1e4a2cc5cd11b2bd3a3a74a3a wolk-sources-4.9-CAN-2004-0814.patch 82272
+MD5 eda46d7ee8f0a5e062c1f5e326d854ca wolk-sources-4.9-CAN-2004-0814.2.patch 136752
similarity index 94%
rename from sys-kernel/wolk-sources/files/digest-wolk-sources-4.9-r19
rename to sys-kernel/wolk-sources/files/digest-wolk-sources-4.9-r20
index 1fcc6f96f959ba495c57efb3a82970f3fe148019..bbec75a12713b48b1e02d675078b7bac27543410 100644 (file)
@@ -15,4 +15,4 @@ MD5 87bdd189276be8de8c9f8177855e7f27 1007_bootsplash-v3.0.8-2.4.20-update.patch
 MD5 48110e2e60a28e6a433bbb24f0bd93a9 1008_supermount-1.2.9-2.4.20-OLDIDE.patch 169980
 MD5 4c94545d63a35b216c7a9c5c3e10b223 1009_mipv6-0.9.5.1-v2.4.20-wolk4.0s.patch 586142
 MD5 c4a897cb2cfbc031bf73cf71ea45c6f2 wolk-sources-4.9-CAN-2004-0415.patch 83245
-MD5 534bb4c1e4a2cc5cd11b2bd3a3a74a3a wolk-sources-4.9-CAN-2004-0814.patch 82272
+MD5 eda46d7ee8f0a5e062c1f5e326d854ca wolk-sources-4.9-CAN-2004-0814.2.patch 136752
diff --git a/sys-kernel/wolk-sources/files/wolk-sources-4.9s.brk-locked.patch b/sys-kernel/wolk-sources/files/wolk-sources-4.9s.brk-locked.patch
new file mode 100644 (file)
index 0000000..c275b0b
--- /dev/null
@@ -0,0 +1,265 @@
+diff -ur linux-2.4.28-gentoo-r4/arch/mips/kernel/irixelf.c linux-2.4.28-gentoo-r5/arch/mips/kernel/irixelf.c
+--- linux-2.4.28-gentoo-r4/arch/mips/kernel/irixelf.c  2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/arch/mips/kernel/irixelf.c  2005-01-07 20:20:32.000000000 +0000
+@@ -130,7 +130,7 @@
+       end = PAGE_ALIGN(end);
+       if (end <= start)
+               return;
+-      do_brk(start, end - start);
++      do_brk_locked(start, end - start);
+ }
+ 
+ 
+@@ -379,7 +379,7 @@
+ 
+       /* Map the last of the bss segment */
+       if (last_bss > len) {
+-              do_brk(len, (last_bss - len));
++              do_brk_locked(len, (last_bss - len));
+       }
+       kfree(elf_phdata);
+ 
+@@ -567,7 +567,7 @@
+       unsigned long v;
+       struct prda *pp;
+ 
+-      v =  do_brk (PRDA_ADDRESS, PAGE_SIZE);
++      v =  do_brk_locked (PRDA_ADDRESS, PAGE_SIZE);
+ 
+       if (v < 0)
+               return;
+@@ -859,7 +859,7 @@
+       len = (elf_phdata->p_filesz + elf_phdata->p_vaddr+ 0xfff) & 0xfffff000;
+       bss = elf_phdata->p_memsz + elf_phdata->p_vaddr;
+       if (bss > len)
+-        do_brk(len, bss-len);
++        do_brk_locked(len, bss-len);
+       kfree(elf_phdata);
+       return 0;
+ }
+diff -ur linux-2.4.28-gentoo-r4/arch/sparc64/kernel/binfmt_aout32.c linux-2.4.28-gentoo-r5/arch/sparc64/kernel/binfmt_aout32.c
+--- linux-2.4.28-gentoo-r4/arch/sparc64/kernel/binfmt_aout32.c 2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/arch/sparc64/kernel/binfmt_aout32.c 2005-01-07 20:20:32.000000000 +0000
+@@ -49,7 +49,7 @@
+       end = PAGE_ALIGN(end);
+       if (end <= start)
+               return;
+-      do_brk(start, end - start);
++      do_brk_locked(start, end - start);
+ }
+ 
+ /*
+@@ -246,10 +246,10 @@
+       if (N_MAGIC(ex) == NMAGIC) {
+               loff_t pos = fd_offset;
+               /* Fuck me plenty... */
+-              error = do_brk(N_TXTADDR(ex), ex.a_text);
++              error = do_brk_locked(N_TXTADDR(ex), ex.a_text);
+               bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex),
+                         ex.a_text, &pos);
+-              error = do_brk(N_DATADDR(ex), ex.a_data);
++              error = do_brk_locked(N_DATADDR(ex), ex.a_data);
+               bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex),
+                         ex.a_data, &pos);
+               goto beyond_if;
+@@ -257,7 +257,7 @@
+ 
+       if (N_MAGIC(ex) == OMAGIC) {
+               loff_t pos = fd_offset;
+-              do_brk(N_TXTADDR(ex) & PAGE_MASK,
++              do_brk_locked(N_TXTADDR(ex) & PAGE_MASK,
+                       ex.a_text+ex.a_data + PAGE_SIZE - 1);
+               bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex),
+                         ex.a_text+ex.a_data, &pos);
+@@ -272,7 +272,7 @@
+ 
+               if (!bprm->file->f_op->mmap) {
+                       loff_t pos = fd_offset;
+-                      do_brk(0, ex.a_text+ex.a_data);
++                      do_brk_locked(0, ex.a_text+ex.a_data);
+                       bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex),
+                                 ex.a_text+ex.a_data, &pos);
+                       goto beyond_if;
+@@ -388,7 +388,7 @@
+       len = PAGE_ALIGN(ex.a_text + ex.a_data);
+       bss = ex.a_text + ex.a_data + ex.a_bss;
+       if (bss > len) {
+-              error = do_brk(start_addr + len, bss - len);
++              error = do_brk_locked(start_addr + len, bss - len);
+               retval = error;
+               if (error != start_addr + len)
+                       goto out;
+diff -ur linux-2.4.28-gentoo-r4/fs/binfmt_aout.c linux-2.4.28-gentoo-r5/fs/binfmt_aout.c
+--- linux-2.4.28-gentoo-r4/fs/binfmt_aout.c    2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/fs/binfmt_aout.c    2005-01-07 20:20:32.000000000 +0000
+@@ -46,7 +46,7 @@
+       start = PAGE_ALIGN(start);
+       end = PAGE_ALIGN(end);
+       if (end > start) {
+-              unsigned long addr = do_brk(start, end - start);
++              unsigned long addr = do_brk_locked(start, end - start);
+               if (BAD_ADDR(addr))
+                       return addr;
+       }
+@@ -341,10 +341,10 @@
+               loff_t pos = fd_offset;
+               /* Fuck me plenty... */
+               /* <AOL></AOL> */
+-              error = do_brk(N_TXTADDR(ex), ex.a_text);
++              error = do_brk_locked(N_TXTADDR(ex), ex.a_text);
+               bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex),
+                         ex.a_text, &pos);
+-              error = do_brk(N_DATADDR(ex), ex.a_data);
++              error = do_brk_locked(N_DATADDR(ex), ex.a_data);
+               bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex),
+                         ex.a_data, &pos);
+               goto beyond_if;
+@@ -365,7 +365,7 @@
+               map_size = ex.a_text+ex.a_data;
+ #endif
+ 
+-              error = do_brk(text_addr & PAGE_MASK, map_size);
++              error = do_brk_locked(text_addr & PAGE_MASK, map_size);
+               if (error != (text_addr & PAGE_MASK)) {
+                       send_sig(SIGKILL, current, 0);
+                       return error;
+@@ -399,7 +399,7 @@
+ 
+               if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) {
+                       loff_t pos = fd_offset;
+-                      do_brk(N_TXTADDR(ex), ex.a_text+ex.a_data);
++                      do_brk_locked(N_TXTADDR(ex), ex.a_text+ex.a_data);
+                       bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex),
+                                       ex.a_text+ex.a_data, &pos);
+                       flush_icache_range((unsigned long) N_TXTADDR(ex),
+@@ -500,7 +500,7 @@
+                       error_time = jiffies;
+               }
+ 
+-              do_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss);
++              do_brk_locked(start_addr, ex.a_text + ex.a_data + ex.a_bss);
+               
+               file->f_op->read(file, (char *)start_addr,
+                       ex.a_text + ex.a_data, &pos);
+@@ -524,7 +524,7 @@
+       len = PAGE_ALIGN(ex.a_text + ex.a_data);
+       bss = ex.a_text + ex.a_data + ex.a_bss;
+       if (bss > len) {
+-              error = do_brk(start_addr + len, bss - len);
++              error = do_brk_locked(start_addr + len, bss - len);
+               retval = error;
+               if (error != start_addr + len)
+                       goto out;
+diff -ur linux-2.4.28-gentoo-r4/fs/binfmt_elf.c linux-2.4.28-gentoo-r5/fs/binfmt_elf.c
+--- linux-2.4.28-gentoo-r4/fs/binfmt_elf.c     2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/fs/binfmt_elf.c     2005-01-07 20:20:46.000000000 +0000
+@@ -88,6 +88,7 @@ static void set_brk(unsigned long start,
+       end = ELF_PAGEALIGN(end);
+       if (end <= start)
+               return;
++      down_write(&current->mm->mmap_sem);
+       do_brk(start, end - start);
+ 
+ #ifdef CONFIG_GRKERNSEC_PAX_RANDEXEC
+@@ -95,6 +96,7 @@ static void set_brk(unsigned long start,
+               __do_mmap_pgoff(NULL, ELF_PAGEALIGN(start + current->mm->delta_exec), 0UL, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED | MAP_MIRROR, start);
+ #endif
+ 
++      up_write(&current->mm->mmap_sem);
+ }
+ 
+ 
+@@ -295,7 +297,9 @@ static unsigned long load_elf_interp(str
+        */
+       if (interp_elf_ex->e_phentsize != sizeof(struct elf_phdr))
+               goto out;
+-      if (interp_elf_ex->e_phnum > 65536U / sizeof(struct elf_phdr))
++
++      if (interp_elf_ex->e_phnum < 1 ||
++          interp_elf_ex->e_phnum > 65536U / sizeof(struct elf_phdr))
+               goto out;
+ 
+       /* Now read in all of the header information */ 
+@@ -370,7 +370,7 @@
+ 
+       /* Map the last of the bss segment */
+       if (last_bss > elf_bss)
+-              do_brk(elf_bss, last_bss - elf_bss);
++              do_brk_locked(elf_bss, last_bss - elf_bss);
+ 
+       *interp_load_addr = load_addr;
+       error = ((unsigned long) interp_elf_ex->e_entry) + load_addr;
+@@ -407,7 +407,7 @@
+               goto out;
+       }
+ 
+-      do_brk(0, text_data);
++      do_brk_locked(0, text_data);
+       if (!interpreter->f_op || !interpreter->f_op->read)
+               goto out;
+       if (interpreter->f_op->read(interpreter, addr, text_data, &offset) < 0)
+@@ -415,7 +415,7 @@
+       flush_icache_range((unsigned long)addr,
+                          (unsigned long)addr + text_data);
+ 
+-      do_brk(ELF_PAGESTART(text_data + ELF_MIN_ALIGN - 1),
++      do_brk_locked(ELF_PAGESTART(text_data + ELF_MIN_ALIGN - 1),
+               interp_ex->a_bss);
+       elf_entry = interp_ex->a_entry;
+ 
+@@ -1271,7 +1271,7 @@
+       len = ELF_PAGESTART(elf_phdata->p_filesz + elf_phdata->p_vaddr + ELF_MIN_ALIGN - 1);
+       bss = elf_phdata->p_memsz + elf_phdata->p_vaddr;
+       if (bss > len)
+-              do_brk(len, bss - len);
++              do_brk_locked(len, bss - len);
+       error = 0;
+ 
+ out_free_ph:
+diff -ur linux-2.4.28-gentoo-r4/include/linux/mm.h linux-2.4.28-gentoo-r5/include/linux/mm.h
+--- linux-2.4.28-gentoo-r4/include/linux/mm.h  2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/include/linux/mm.h  2005-01-07 20:20:32.000000000 +0000
+@@ -601,6 +601,7 @@
+ extern int do_munmap(struct mm_struct *, unsigned long, size_t);
+ 
+ extern unsigned long do_brk(unsigned long, unsigned long);
++extern unsigned long do_brk_locked(unsigned long, unsigned long);
+ 
+ static inline void __vma_unlink(struct mm_struct * mm, struct vm_area_struct * vma, struct vm_area_struct * prev)
+ {
+diff -ur linux-2.4.28-gentoo-r4/kernel/ksyms.c linux-2.4.28-gentoo-r5/kernel/ksyms.c
+--- linux-2.4.28-gentoo-r4/kernel/ksyms.c      2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/kernel/ksyms.c      2005-01-07 20:20:32.000000000 +0000
+@@ -90,6 +90,7 @@
+ EXPORT_SYMBOL(__do_mmap_pgoff);
+ EXPORT_SYMBOL(do_munmap);
+ EXPORT_SYMBOL(do_brk);
++EXPORT_SYMBOL(do_brk_locked);
+ EXPORT_SYMBOL(exit_mm);
+ EXPORT_SYMBOL(exit_files);
+ EXPORT_SYMBOL(exit_fs);
+diff -ur linux-2.4.28-gentoo-r4/mm/mmap.c linux-2.4.28-gentoo-r5/mm/mmap.c
+--- linux-2.4.28-gentoo-r4/mm/mmap.c   2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/mm/mmap.c   2005-01-07 20:20:32.000000000 +0000
+@@ -1401,6 +1401,21 @@
+       return addr;
+ }
+ 
++/* locking version of do_brk. */
++unsigned long do_brk_locked(unsigned long addr, unsigned long len)
++{
++      unsigned long ret;
++
++      down_write(&current->mm->mmap_sem);
++      ret = do_brk(addr, len);
++      up_write(&current->mm->mmap_sem);
++
++      return ret;
++}
++
++
++
++
+ /* Build the RB tree corresponding to the VMA list. */
+ void build_mmap_rb(struct mm_struct * mm)
+ {
diff --git a/sys-kernel/wolk-sources/files/wolk-sources.77094.patch b/sys-kernel/wolk-sources/files/wolk-sources.77094.patch
new file mode 100644 (file)
index 0000000..cc3a155
--- /dev/null
@@ -0,0 +1,12 @@
+diff -ur linux-2.4.28/drivers/char/random.c linux-2.4.28.plasmaroo/drivers/char/random.c
+--- linux-2.4.28/drivers/char/random.c 2004-11-17 11:54:21.000000000 +0000
++++ linux-2.4.28.plasmaroo/drivers/char/random.c       2005-01-08 02:54:49.198635736 +0000
+@@ -1787,7 +1787,7 @@
+                            void *oldval, size_t *oldlenp,
+                            void *newval, size_t newlen, void **context)
+ {
+-      int     len;
++      size_t  len;
+       
+       sysctl_poolsize = random_state->poolinfo.POOLBYTES;
+ 
diff --git a/sys-kernel/wolk-sources/files/wolk-sources.brk-locked.patch b/sys-kernel/wolk-sources/files/wolk-sources.brk-locked.patch
new file mode 100644 (file)
index 0000000..78bed1e
--- /dev/null
@@ -0,0 +1,265 @@
+diff -ur linux-2.4.28-gentoo-r4/arch/mips/kernel/irixelf.c linux-2.4.28-gentoo-r5/arch/mips/kernel/irixelf.c
+--- linux-2.4.28-gentoo-r4/arch/mips/kernel/irixelf.c  2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/arch/mips/kernel/irixelf.c  2005-01-07 20:20:32.000000000 +0000
+@@ -130,7 +130,7 @@
+       end = PAGE_ALIGN(end);
+       if (end <= start)
+               return;
+-      do_brk(start, end - start);
++      do_brk_locked(start, end - start);
+ }
+ 
+ 
+@@ -379,7 +379,7 @@
+ 
+       /* Map the last of the bss segment */
+       if (last_bss > len) {
+-              do_brk(len, (last_bss - len));
++              do_brk_locked(len, (last_bss - len));
+       }
+       kfree(elf_phdata);
+ 
+@@ -567,7 +567,7 @@
+       unsigned long v;
+       struct prda *pp;
+ 
+-      v =  do_brk (PRDA_ADDRESS, PAGE_SIZE);
++      v =  do_brk_locked (PRDA_ADDRESS, PAGE_SIZE);
+ 
+       if (v < 0)
+               return;
+@@ -859,7 +859,7 @@
+       len = (elf_phdata->p_filesz + elf_phdata->p_vaddr+ 0xfff) & 0xfffff000;
+       bss = elf_phdata->p_memsz + elf_phdata->p_vaddr;
+       if (bss > len)
+-        do_brk(len, bss-len);
++        do_brk_locked(len, bss-len);
+       kfree(elf_phdata);
+       return 0;
+ }
+diff -ur linux-2.4.28-gentoo-r4/arch/sparc64/kernel/binfmt_aout32.c linux-2.4.28-gentoo-r5/arch/sparc64/kernel/binfmt_aout32.c
+--- linux-2.4.28-gentoo-r4/arch/sparc64/kernel/binfmt_aout32.c 2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/arch/sparc64/kernel/binfmt_aout32.c 2005-01-07 20:20:32.000000000 +0000
+@@ -49,7 +49,7 @@
+       end = PAGE_ALIGN(end);
+       if (end <= start)
+               return;
+-      do_brk(start, end - start);
++      do_brk_locked(start, end - start);
+ }
+ 
+ /*
+@@ -246,10 +246,10 @@
+       if (N_MAGIC(ex) == NMAGIC) {
+               loff_t pos = fd_offset;
+               /* Fuck me plenty... */
+-              error = do_brk(N_TXTADDR(ex), ex.a_text);
++              error = do_brk_locked(N_TXTADDR(ex), ex.a_text);
+               bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex),
+                         ex.a_text, &pos);
+-              error = do_brk(N_DATADDR(ex), ex.a_data);
++              error = do_brk_locked(N_DATADDR(ex), ex.a_data);
+               bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex),
+                         ex.a_data, &pos);
+               goto beyond_if;
+@@ -257,7 +257,7 @@
+ 
+       if (N_MAGIC(ex) == OMAGIC) {
+               loff_t pos = fd_offset;
+-              do_brk(N_TXTADDR(ex) & PAGE_MASK,
++              do_brk_locked(N_TXTADDR(ex) & PAGE_MASK,
+                       ex.a_text+ex.a_data + PAGE_SIZE - 1);
+               bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex),
+                         ex.a_text+ex.a_data, &pos);
+@@ -272,7 +272,7 @@
+ 
+               if (!bprm->file->f_op->mmap) {
+                       loff_t pos = fd_offset;
+-                      do_brk(0, ex.a_text+ex.a_data);
++                      do_brk_locked(0, ex.a_text+ex.a_data);
+                       bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex),
+                                 ex.a_text+ex.a_data, &pos);
+                       goto beyond_if;
+@@ -388,7 +388,7 @@
+       len = PAGE_ALIGN(ex.a_text + ex.a_data);
+       bss = ex.a_text + ex.a_data + ex.a_bss;
+       if (bss > len) {
+-              error = do_brk(start_addr + len, bss - len);
++              error = do_brk_locked(start_addr + len, bss - len);
+               retval = error;
+               if (error != start_addr + len)
+                       goto out;
+diff -ur linux-2.4.28-gentoo-r4/fs/binfmt_aout.c linux-2.4.28-gentoo-r5/fs/binfmt_aout.c
+--- linux-2.4.28-gentoo-r4/fs/binfmt_aout.c    2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/fs/binfmt_aout.c    2005-01-07 20:20:32.000000000 +0000
+@@ -46,7 +46,7 @@
+       start = PAGE_ALIGN(start);
+       end = PAGE_ALIGN(end);
+       if (end > start) {
+-              unsigned long addr = do_brk(start, end - start);
++              unsigned long addr = do_brk_locked(start, end - start);
+               if (BAD_ADDR(addr))
+                       return addr;
+       }
+@@ -341,10 +341,10 @@
+               loff_t pos = fd_offset;
+               /* Fuck me plenty... */
+               /* <AOL></AOL> */
+-              error = do_brk(N_TXTADDR(ex), ex.a_text);
++              error = do_brk_locked(N_TXTADDR(ex), ex.a_text);
+               bprm->file->f_op->read(bprm->file, (char *) N_TXTADDR(ex),
+                         ex.a_text, &pos);
+-              error = do_brk(N_DATADDR(ex), ex.a_data);
++              error = do_brk_locked(N_DATADDR(ex), ex.a_data);
+               bprm->file->f_op->read(bprm->file, (char *) N_DATADDR(ex),
+                         ex.a_data, &pos);
+               goto beyond_if;
+@@ -365,7 +365,7 @@
+               map_size = ex.a_text+ex.a_data;
+ #endif
+ 
+-              error = do_brk(text_addr & PAGE_MASK, map_size);
++              error = do_brk_locked(text_addr & PAGE_MASK, map_size);
+               if (error != (text_addr & PAGE_MASK)) {
+                       send_sig(SIGKILL, current, 0);
+                       return error;
+@@ -399,7 +399,7 @@
+ 
+               if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) {
+                       loff_t pos = fd_offset;
+-                      do_brk(N_TXTADDR(ex), ex.a_text+ex.a_data);
++                      do_brk_locked(N_TXTADDR(ex), ex.a_text+ex.a_data);
+                       bprm->file->f_op->read(bprm->file,(char *)N_TXTADDR(ex),
+                                       ex.a_text+ex.a_data, &pos);
+                       flush_icache_range((unsigned long) N_TXTADDR(ex),
+@@ -500,7 +500,7 @@
+                       error_time = jiffies;
+               }
+ 
+-              do_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss);
++              do_brk_locked(start_addr, ex.a_text + ex.a_data + ex.a_bss);
+               
+               file->f_op->read(file, (char *)start_addr,
+                       ex.a_text + ex.a_data, &pos);
+@@ -524,7 +524,7 @@
+       len = PAGE_ALIGN(ex.a_text + ex.a_data);
+       bss = ex.a_text + ex.a_data + ex.a_bss;
+       if (bss > len) {
+-              error = do_brk(start_addr + len, bss - len);
++              error = do_brk_locked(start_addr + len, bss - len);
+               retval = error;
+               if (error != start_addr + len)
+                       goto out;
+diff -ur linux-2.4.28-gentoo-r4/fs/binfmt_elf.c linux-2.4.28-gentoo-r5/fs/binfmt_elf.c
+--- linux-2.4.28-gentoo-r4/fs/binfmt_elf.c     2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/fs/binfmt_elf.c     2005-01-07 20:20:46.000000000 +0000
+@@ -88,6 +88,7 @@ static void set_brk(unsigned long start,
+       end = ELF_PAGEALIGN(end);
+       if (end <= start)
+               return;
++      down_write(&current->mm->mmap_sem);
+       do_brk(start, end - start);
+ 
+ #ifdef CONFIG_GRKERNSEC_PAX_RANDEXEC
+@@ -95,6 +96,7 @@ static void set_brk(unsigned long start,
+               __do_mmap_pgoff(NULL, ELF_PAGEALIGN(start + current->mm->delta_exec), 0UL, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED | MAP_MIRROR, start);
+ #endif
+ 
++      up_write(&current->mm->mmap_sem);
+ }
+ 
+ 
+@@ -295,7 +297,9 @@ static unsigned long load_elf_interp(str
+        */
+       if (interp_elf_ex->e_phentsize != sizeof(struct elf_phdr))
+               goto out;
+-      if (interp_elf_ex->e_phnum > 65536U / sizeof(struct elf_phdr))
++
++      if (interp_elf_ex->e_phnum < 1 ||
++          interp_elf_ex->e_phnum > 65536U / sizeof(struct elf_phdr))
+               goto out;
+ 
+       /* Now read in all of the header information */ 
+@@ -370,7 +370,7 @@
+ 
+       /* Map the last of the bss segment */
+       if (last_bss > elf_bss)
+-              do_brk(elf_bss, last_bss - elf_bss);
++              do_brk_locked(elf_bss, last_bss - elf_bss);
+ 
+       *interp_load_addr = load_addr;
+       error = ((unsigned long) interp_elf_ex->e_entry) + load_addr;
+@@ -407,7 +407,7 @@
+               goto out;
+       }
+ 
+-      do_brk(0, text_data);
++      do_brk_locked(0, text_data);
+       retval = -ENOEXEC;
+       if (!interpreter->f_op || !interpreter->f_op->read)
+               goto out;
+@@ -415,7 +415,7 @@
+       flush_icache_range((unsigned long)addr,
+                          (unsigned long)addr + text_data);
+ 
+-      do_brk(ELF_PAGESTART(text_data + ELF_MIN_ALIGN - 1),
++      do_brk_locked(ELF_PAGESTART(text_data + ELF_MIN_ALIGN - 1),
+               interp_ex->a_bss);
+       elf_entry = interp_ex->a_entry;
+ 
+@@ -1271,7 +1271,7 @@
+       len = ELF_PAGESTART(elf_phdata->p_filesz + elf_phdata->p_vaddr + ELF_MIN_ALIGN - 1);
+       bss = elf_phdata->p_memsz + elf_phdata->p_vaddr;
+       if (bss > len)
+-              do_brk(len, bss - len);
++              do_brk_locked(len, bss - len);
+       error = 0;
+ 
+ out_free_ph:
+diff -ur linux-2.4.28-gentoo-r4/include/linux/mm.h linux-2.4.28-gentoo-r5/include/linux/mm.h
+--- linux-2.4.28-gentoo-r4/include/linux/mm.h  2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/include/linux/mm.h  2005-01-07 20:20:32.000000000 +0000
+@@ -601,6 +601,7 @@
+ extern int do_munmap(struct mm_struct *, unsigned long, size_t);
+ 
+ extern unsigned long do_brk(unsigned long, unsigned long);
++extern unsigned long do_brk_locked(unsigned long, unsigned long);
+ 
+ static inline void __vma_unlink(struct mm_struct * mm, struct vm_area_struct * vma, struct vm_area_struct * prev)
+ {
+diff -ur linux-2.4.28-gentoo-r4/kernel/ksyms.c linux-2.4.28-gentoo-r5/kernel/ksyms.c
+--- linux-2.4.28-gentoo-r4/kernel/ksyms.c      2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/kernel/ksyms.c      2005-01-07 20:20:32.000000000 +0000
+@@ -90,6 +90,7 @@
+ EXPORT_SYMBOL(__do_mmap_pgoff);
+ EXPORT_SYMBOL(do_munmap);
+ EXPORT_SYMBOL(do_brk);
++EXPORT_SYMBOL(do_brk_locked);
+ EXPORT_SYMBOL(exit_mm);
+ EXPORT_SYMBOL(exit_files);
+ EXPORT_SYMBOL(exit_fs);
+diff -ur linux-2.4.28-gentoo-r4/mm/mmap.c linux-2.4.28-gentoo-r5/mm/mmap.c
+--- linux-2.4.28-gentoo-r4/mm/mmap.c   2005-01-07 20:33:12.000000000 +0000
++++ linux-2.4.28-gentoo-r5/mm/mmap.c   2005-01-07 20:20:32.000000000 +0000
+@@ -1401,6 +1401,21 @@
+       return addr;
+ }
+ 
++/* locking version of do_brk. */
++unsigned long do_brk_locked(unsigned long addr, unsigned long len)
++{
++      unsigned long ret;
++
++      down_write(&current->mm->mmap_sem);
++      ret = do_brk(addr, len);
++      up_write(&current->mm->mmap_sem);
++
++      return ret;
++}
++
++
++
++
+ /* Build the RB tree corresponding to the VMA list. */
+ void build_mmap_rb(struct mm_struct * mm)
+ {
similarity index 89%
rename from sys-kernel/wolk-sources/wolk-sources-4.11-r15.ebuild
rename to sys-kernel/wolk-sources/wolk-sources-4.11-r16.ebuild
index 4203f4711dccce9702880d22692c248b712ee300..cedb1c5227db293f1b58f75ea44f66df7d1f34a5 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/wolk-sources/wolk-sources-4.11-r15.ebuild,v 1.1 2004/12/24 19:42:58 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/wolk-sources/wolk-sources-4.11-r16.ebuild,v 1.1 2005/01/09 16:21:03 plasmaroo Exp $
 
 # OKV=original kernel version, KV=patched kernel version.  They can be the same.
 
@@ -22,7 +22,7 @@ SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2
        mirror://sourceforge/wolk/linux-${OKV}-wolk4.10s.patch.bz2
        mirror://sourceforge/wolk/linux-${OKV}-wolk4.10s-to-4.11s.patch.bz2
        http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${P}-CAN-2004-0415.patch
-       http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${PN}-4.9-CAN-2004-0814.patch"
+       http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${PN}-4.9-CAN-2004-0814.2.patch"
 
 SLOT="${KV}"
 HOMEPAGE="http://wolk.sourceforge.net http://www.kernel.org"
@@ -47,7 +47,7 @@ src_unpack() {
        epatch ${FILESDIR}/${PN}.CAN-2004-0497.patch || die "Failed to add the CAN-2004-0497 patch!"
        epatch ${FILESDIR}/${PN}.CAN-2004-0535.patch || die "Failed to add the CAN-2004-0535 patch!"
        epatch ${FILESDIR}/${PN}.CAN-2004-0685.patch || die "Failed to add the CAN-2004-0685 patch!"
-       epatch ${DISTDIR}/${PN}-4.9-CAN-2004-0814.patch || die "Failed to add the CAN-2004-0814 patch!"
+       epatch ${DISTDIR}/${PN}-4.9-CAN-2004-0814.2.patch || die "Failed to add the CAN-2004-0814 patch!"
        epatch ${FILESDIR}/${PN}.FPULockup-53804.patch || die "Failed to apply FPU-lockup patch!"
        epatch ${FILESDIR}/${PN}.cmdlineLeak.patch || die "Failed to apply the /proc/cmdline patch!"
        epatch ${FILESDIR}/${PN}.XDRWrapFix.patch || die "Failed to apply the kNFSd XDR patch!"
@@ -58,6 +58,8 @@ src_unpack() {
        epatch ${FILESDIR}/${PN}.vma.patch || die "Failed to apply the VMA patch!"
        epatch ${FILESDIR}/${PN}.CAN-2004-1016.patch || die "Failed to apply the CAN-2004-1016 patch!"
        epatch ${FILESDIR}/${PN}.CAN-2004-1056.patch || die "Failed to apply the CAN-2004-1056 patch!"
+       epatch ${FILESDIR}/${PN}.brk-locked.patch || die "Failed to apply the do_brk() locking patch!"
+       epatch ${FILESDIR}/${PN}.77094.patch || die "Failed to apply bug #77094 patch!"
 
        kernel_universal_unpack
 }
similarity index 89%
rename from sys-kernel/wolk-sources/wolk-sources-4.14-r12.ebuild
rename to sys-kernel/wolk-sources/wolk-sources-4.14-r13.ebuild
index 7186a433e9f3ae0ebc84ff5bcbaf85e7d5995790..e25c66e3154be52172c698e7a8fb42a27b072f17 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/wolk-sources/wolk-sources-4.14-r12.ebuild,v 1.1 2004/12/24 19:42:58 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/wolk-sources/wolk-sources-4.14-r13.ebuild,v 1.1 2005/01/09 16:21:03 plasmaroo Exp $
 
 OKV="2.4.20"
 OKB="2.4"
@@ -18,7 +18,7 @@ DESCRIPTION="Full sources for Marc-Christian Peterson's WOLK kernel, based on 2.
 HOMEPAGE="http://www.kernel.org/pub/linux/kernel/people/mcp/${OKB}-WOLK/"
 SRC_URI="mirror://kernel/linux/kernel/people/mcp/${OKB}-WOLK/${WOLK_SRC}
        http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${PN}-4.11-CAN-2004-0415.patch
-       http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${PN}-4.9-CAN-2004-0814.patch"
+       http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${PN}-4.9-CAN-2004-0814.2.patch"
 
 KEYWORDS="x86 ~ppc ~sparc ~alpha ~hppa -mips"
 
@@ -29,7 +29,7 @@ this file in the directory containing the sources."
 
 UNIPATCH_LIST="
        ${DISTDIR}/${PN}-4.11-CAN-2004-0415.patch
-       ${DISTDIR}/${PN}-4.9-CAN-2004-0814.patch
+       ${DISTDIR}/${PN}-4.9-CAN-2004-0814.2.patch
        ${FILESDIR}/${PN}.CAN-2004-0133.patch
        ${FILESDIR}/${PN}.CAN-2004-0181.patch
        ${FILESDIR}/${PN}.CAN-2004-0394.patch
@@ -46,7 +46,9 @@ UNIPATCH_LIST="
        ${FILESDIR}/${PN}.binfmt_a.out.patch
        ${FILESDIR}/${PN}.vma.patch
        ${FILESDIR}/${PN}.CAN-2004-1016.patch
-       ${FILESDIR}/${PN}.CAN-2004-1056.patch"
+       ${FILESDIR}/${PN}.CAN-2004-1056.patch
+       ${FILESDIR}/${PN}.brk-locked.patch
+       ${FILESDIR}/${PN}.77094.patch"
 
 #============================================================================
 # We'll override the src_unpack() function from the eclass. This is necessary
similarity index 94%
rename from sys-kernel/wolk-sources/wolk-sources-4.9-r19.ebuild
rename to sys-kernel/wolk-sources/wolk-sources-4.9-r20.ebuild
index 97d794d3001322a5139bc28498ac78f0e10aa266..25067e886f40045d099acf2f0427f5259afc6e9f 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/wolk-sources/wolk-sources-4.9-r19.ebuild,v 1.1 2004/12/24 19:42:58 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/wolk-sources/wolk-sources-4.9-r20.ebuild,v 1.1 2005/01/09 16:21:03 plasmaroo Exp $
 
 # OKV=original kernel version, KV=patched kernel version.  They can be the same.
 
@@ -35,7 +35,7 @@ SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2
                wolk-supermount? ( http://wolk.sourceforge.net/Workstation-Edition/1008_supermount-1.2.9-2.4.20-OLDIDE.patch)
                ipv6? ( http://wolk.sourceforge.net/Workstation-Edition/1009_mipv6-0.9.5.1-v2.4.20-wolk4.0s.patch )
        http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${P}-CAN-2004-0415.patch
-       http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${P}-CAN-2004-0814.patch"
+       http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${P}-CAN-2004-0814.2.patch"
 
 SLOT="${KV}"
 HOMEPAGE="http://wolk.sourceforge.net http://www.kernel.org"
@@ -92,7 +92,7 @@ src_unpack() {
        epatch ${FILESDIR}/${PN}.CAN-2004-0497.patch || die "Failed to add the CAN-2004-0497 patch!"
        epatch ${FILESDIR}/${PN}.CAN-2004-0535.patch || die "Failed to add the CAN-2004-0535 patch!"
        epatch ${FILESDIR}/${PN}-4.9s.CAN-2004-0685.patch || die "Failed to add the CAN-2004-0685 patch!"
-       epatch ${DISTDIR}/${P}-CAN-2004-0814.patch || die "Failed to add the CAN-2004-0814 patch!"
+       epatch ${DISTDIR}/${P}-CAN-2004-0814.2.patch || die "Failed to add the CAN-2004-0814 patch!"
        epatch ${FILESDIR}/${PN}.FPULockup-53804.patch || die "Failed to apply FPU-lockup patch!"
        epatch ${FILESDIR}/${PN}.cmdlineLeak.patch || die "Failed to apply the /proc/cmdline patch!"
        epatch ${FILESDIR}/${PN}.XDRWrapFix.patch || die "Failed to apply the kNFSd XDR patch!"
@@ -103,6 +103,8 @@ src_unpack() {
        epatch ${FILESDIR}/${PN}.vma.patch || die "Failed to apply the VMA patch!"
        epatch ${FILESDIR}/${PN}.CAN-2004-1016.patch || die "Failed to apply the CAN-2004-1016 patch!"
        epatch ${FILESDIR}/${PN}-4.9s.CAN-2004-1056.patch || die "Failed to apply the CAN-2004-1056 patch!"
+       epatch ${FILESDIR}/${PN}-4.9s.brk-locked.patch || die "Failed to apply the do_brk() locking patch!"
+       epatch ${FILESDIR}/${PN}.77094.patch || die "Failed to apply bug #77094 patch!"
 
        kernel_universal_unpack
 }