Security bump; fixes bugs #75963, #77025 and #77094.
authorTim Yamin <plasmaroo@gentoo.org>
Sun, 9 Jan 2005 13:00:28 +0000 (13:00 +0000)
committerTim Yamin <plasmaroo@gentoo.org>
Sun, 9 Jan 2005 13:00:28 +0000 (13:00 +0000)
sys-kernel/win4lin-sources/ChangeLog
sys-kernel/win4lin-sources/Manifest
sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.26-r12 [moved from sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.26-r11 with 77% similarity]
sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.9-r6 [moved from sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.9-r5 with 100% similarity]
sys-kernel/win4lin-sources/files/win4lin-sources-2.4.26.77094.patch [new file with mode: 0644]
sys-kernel/win4lin-sources/files/win4lin-sources-2.4.26.brk-locked.patch [new file with mode: 0644]
sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.75963.patch [new file with mode: 0644]
sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.77094.patch [new file with mode: 0644]
sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.brk-locked.patch [new file with mode: 0644]
sys-kernel/win4lin-sources/win4lin-sources-2.4.26-r12.ebuild [moved from sys-kernel/win4lin-sources/win4lin-sources-2.4.26-r11.ebuild with 87% similarity]
sys-kernel/win4lin-sources/win4lin-sources-2.6.9-r6.ebuild [moved from sys-kernel/win4lin-sources/win4lin-sources-2.6.9-r5.ebuild with 86% similarity]

index 6395141ecc8597143fe7eb00e42258567e8de6e8..aac64e5261a8c33a55b8b19cf08844edf7227845 100644 (file)
@@ -1,6 +1,17 @@
 # ChangeLog for sys-kernel/win4lin-sources
-# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/ChangeLog,v 1.48 2004/12/24 18:53:11 plasmaroo Exp $
+# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/ChangeLog,v 1.49 2005/01/09 13:00:28 plasmaroo Exp $
+
+*win4lin-sources-2.6.9-r6 (09 Jan 2005)
+
+  09 Jan 2005; <plasmaroo@gentoo.org> -win4lin-sources-2.4.26-r11.ebuild,
+  +win4lin-sources-2.4.26-r12.ebuild, -win4lin-sources-2.6.9-r5.ebuild,
+  +win4lin-sources-2.6.9-r6.ebuild, +files/win4lin-sources-2.4.26.77094.patch,
+  +files/win4lin-sources-2.4.26.brk-locked.patch,
+  +files/win4lin-sources-2.6.9.75963.patch,
+  +files/win4lin-sources-2.6.9.77094.patch,
+  +files/win4lin-sources-2.6.9.brk-locked.patch:
+  Security bump; fixes bugs #75963, #77025 and #77094.
 
 *win4lin-sources-2.4.26-r11 (24 Dec 2004)
 
index 532fc06ba18ac1c00a32dafcd5035e6b21758330..d2494d33570ca833c143c508d75976b8b80e7779 100644 (file)
@@ -1,34 +1,39 @@
-MD5 38494f116d4804e8b5911bb9103daac1 ChangeLog 11868
-MD5 57e29981610c48a4b7cba7b02a68b3fe win4lin-sources-2.4.26-r11.ebuild 3037
-MD5 2c7f435c9f3493c51ff4a359fd53553c win4lin-sources-2.6.9-r5.ebuild 1619
+MD5 fc7c3627da4decfab31196251e6a0292 win4lin-sources-2.6.9-r6.ebuild 1714
+MD5 bec4f315218793ddf040fced3b0d8019 ChangeLog 12377
 MD5 608fe99985244b0445f76cee44c9ae14 metadata.xml 290
+MD5 af193ee9e349c9f1ba1524de83719da1 win4lin-sources-2.4.26-r12.ebuild 3210
 MD5 530630d25910e6bd9376b63ea099655f files/win4lin-sources-2.6.9.AF_UNIX.patch 469
 MD5 6aa8f7a7c2d55734389b53d3bcf78570 files/win4lin-sources-2.4.26.CAN-2004-1016.patch 2835
 MD5 2b3ddb8b8b15f8da35ade38544b57857 files/win4lin-sources-2.4.26.XDRWrapFix.patch 1499
+MD5 694343d4201c42af578f86d75172dc73 files/digest-win4lin-sources-2.4.26-r12 356
+MD5 655251f31f0bdc85bdd0cd0280af22b7 files/win4lin-sources-2.6.9.75963.patch 979
 MD5 4d656fa3f3a47df751c0d78b64ed8353 files/win4lin-sources-2.6.9.AF_UNIX.SELinux.patch 1761
 MD5 f211ff52010dfc1d94d2dcfc06636fd9 files/win4lin-sources-2.6.9.shmLocking.patch 1757
+MD5 362eb8e147238e1c4ea006ee163a8db9 files/win4lin-sources-2.6.9.77094.patch 5209
 MD5 53fe3d26f6fc45487d69895fc07770cb files/win4lin-sources-2.6.9.binfmt_elf.patch 2350
 MD5 8812f60b8d02b0b3b4c46a3311ddd851 files/win4lin-sources-2.6.9.smbfs.patch 2662
 MD5 a9991d6324d7404ed99e79be6e44e9de files/win4lin-sources-2.6.binfmt_elf.patch 2348
 MD5 8c35751caf824a9dacb02e80d6189b2e files/win4lin-sources-2.4.26.CAN-2004-1137.patch 1764
 MD5 c9da1bc82b906f6abc648c056e7bf662 files/win4lin-sources-2.4.26.FPULockup-53804.patch 354
 MD5 d1ccc2047be533c992f67270a150a210 files/win4lin-sources-2.4.26.cmdlineLeak.patch 388
-MD5 2bd92617d5f73fe2973abc0ceb071fc5 files/digest-win4lin-sources-2.6.9-r5 207
 MD5 757ee1239c3f14645ccea3640d551e11 files/win4lin-sources-2.4.26.CAN-2004-1056.patch 11249
 MD5 42b42f2a4f260fad2fef264b82aff2ae files/win4lin-sources-2.6.9.vma.patch 8952
 MD5 6bcdd0bb63e2db559a5c6465c73a7f89 files/win4lin-sources-2.6.9.CAN-2004-1151.patch 1143
 MD5 b0a1f80aff51d6601e8924329023b241 files/win4lin-sources.AF_UNIX.patch 515
 MD5 6aa8f7a7c2d55734389b53d3bcf78570 files/win4lin-sources-2.6.9.CAN-2004-1016.patch 2835
 MD5 dc18e982f8149588a291956481885a8c files/win4lin-sources-2.4.26.CAN-2004-0495.patch 17549
-MD5 65254b087906bead43e7e7bf9eba7610 files/digest-win4lin-sources-2.4.26-r11 353
 MD5 60d25ff310fc6abfdce39ec9e47345af files/win4lin-sources-2.4.26.CAN-2004-0685.patch 2809
 MD5 b9a94233e1457787352e5f85e3e3582d files/win4lin-sources-2.4.26.binfmt_a.out.patch 2009
 MD5 1e1fe7bb98c80db4644f4b7fd7dd5d32 files/win4lin-sources-2.4.26.smbfs.patch 3434
 MD5 001b0a631c9fc28133013a1f8f78f74c files/win4lin-sources-2.6.9.CAN-2004-1056.patch 8458
+MD5 a37241da52edeb7fb1d4989b28eee9cd files/win4lin-sources-2.4.26.brk-locked.patch 8523
 MD5 c27699e9d62f7d46213bd51f87636163 files/win4lin-sources-2.4.26.vma.patch 8143
+MD5 cd0a7533c43364e377348613c6d76bb7 files/win4lin-sources-2.6.9.brk-locked.patch 9736
 MD5 d4a740ae56c2049247083af387a22a85 files/win4lin-sources-2.4.26.CAN-2004-0394.patch 350
 MD5 915e8d7a0618736caa44d96968015467 files/win4lin-sources-2.4.26.binfmt_elf.patch 2346
+MD5 2bd92617d5f73fe2973abc0ceb071fc5 files/digest-win4lin-sources-2.6.9-r6 207
 MD5 025c80544aef14ce3a49024d791c5596 files/win4lin-sources-2.6.9.binfmt_a.out.patch 1763
+MD5 1d78b90e495e432432e095ee47bbc2fc files/win4lin-sources-2.4.26.77094.patch 452
 MD5 09e9f1cad6f2f28fe81682cbad8e3011 files/win4lin-sources-2.6.9.CAN-2004-1137.patch 2551
 MD5 0f66013f643c79c97fda489618a4e2fd files/win4lin-sources-2.4.26.CAN-2004-0535.patch 476
 MD5 95708646470a95668e8789cd415844ed files/win4lin-sources.CAN-2004-0497.patch 846
similarity index 77%
rename from sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.26-r11
rename to sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.26-r12
index 0299063fed16faa731d97bbeb8ab4857aca7aca5..4b52514446b1386e100fb30b18c3038c5b1979ef 100644 (file)
@@ -2,4 +2,4 @@ MD5 88d7aefa03c92739cb70298a0b486e2c linux-2.4.26.tar.bz2 30772389
 MD5 772931f7906d8b26f7e91be8c5813bee mki-adapter.patch 184602
 MD5 e9bc95992e489a3f54aabef100e13fcf Kernel-Win4Lin3-2.4.26.patch 23600
 MD5 8f8f2412aacf9a01b5549bf2a9a3bff8 linux-2.4.26-CAN-2004-0415.patch 90145
-MD5 d4c051e7c6062704be85192e25e2f5b2 linux-2.4.26-CAN-2004-0814.patch 81508
+MD5 74b2f3921c7baa0ad83e51562a6432e4 linux-2.4.26-CAN-2004-0814.2.patch 147687
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.26.77094.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.26.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/win4lin-sources/files/win4lin-sources-2.4.26.brk-locked.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.26.brk-locked.patch
new file mode 100644 (file)
index 0000000..4a1a249
--- /dev/null
@@ -0,0 +1,258 @@
+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
+@@ -130,7 +130,7 @@
+       end = PAGE_ALIGN(end);
+       if (end <= start)
+               return;
+-      do_brk(start, end - start);
++      do_brk_locked(start, end - start);
+ }
+ 
+ 
+@@ -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)
+ {
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.75963.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.75963.patch
new file mode 100644 (file)
index 0000000..80390f1
--- /dev/null
@@ -0,0 +1,32 @@
+--- linux-2.6.10/security/dummy.c      2004-12-24 21:34:26.000000000 +0000
++++ linux-2.6.10.plasmaroo/security/dummy.c    2005-01-07 20:13:50.763073872 +0000
+@@ -74,11 +74,8 @@
+ 
+ static int dummy_capable (struct task_struct *tsk, int cap)
+ {
+-      if (cap_is_fs_cap (cap) ? tsk->fsuid == 0 : tsk->euid == 0)
+-              /* capability granted */
++      if (cap_raised (tsk->cap_effective, cap))
+               return 0;
+-
+-      /* capability denied */
+       return -EPERM;
+ }
+ 
+@@ -191,6 +188,8 @@
+ 
+       current->suid = current->euid = current->fsuid = bprm->e_uid;
+       current->sgid = current->egid = current->fsgid = bprm->e_gid;
++
++      dummy_capget(current, &current->cap_effective, &current->cap_inheritable, &current->cap_permitted);
+ }
+ 
+ static int dummy_bprm_set_security (struct linux_binprm *bprm)
+@@ -550,6 +549,7 @@
+ 
+ static int dummy_task_post_setuid (uid_t id0, uid_t id1, uid_t id2, int flags)
+ {
++      dummy_capget(current, &current->cap_effective, &current->cap_inheritable, &current->cap_permitted);
+       return 0;
+ }
+ 
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.77094.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.77094.patch
new file mode 100644 (file)
index 0000000..40ebbe8
--- /dev/null
@@ -0,0 +1,142 @@
+diff -urp linux-2.6.8.1-r7/drivers/block/scsi_ioctl.c linux-2.6.8.1-r8/drivers/block/scsi_ioctl.c
+--- linux-2.6.8.1-r7/drivers/block/scsi_ioctl.c        2004-08-14 11:56:23.000000000 +0100
++++ linux-2.6.8.1-r8/drivers/block/scsi_ioctl.c        2005-01-09 12:09:55.345308528 +0000
+@@ -304,7 +304,8 @@ static int sg_scsi_ioctl(struct file *fi
+                        struct gendisk *bd_disk, Scsi_Ioctl_Command __user *sic)
+ {
+       struct request *rq;
+-      int err, in_len, out_len, bytes, opcode, cmdlen;
++      unsigned int in_len, out_len, bytes, opcode, cmdlen;
++      int err;
+       char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
+ 
+       /*
+diff -urp linux-2.6.8.1-r7/drivers/char/moxa.c linux-2.6.8.1-r8/drivers/char/moxa.c
+--- linux-2.6.8.1-r7/drivers/char/moxa.c       2005-01-09 12:06:21.000000000 +0000
++++ linux-2.6.8.1-r8/drivers/char/moxa.c       2005-01-09 12:09:55.327311264 +0000
+@@ -1687,6 +1687,8 @@ int MoxaDriverIoctl(unsigned int cmd, un
+               return -EFAULT;
+       if(dltmp.cardno < 0 || dltmp.cardno >= MAX_BOARDS)
+               return -EINVAL;
++      if(dltmp.len < 0 || dltmp.len > sizeof(moxaBuff))
++              return -EINVAL;
+ 
+       switch(cmd)
+       {
+@@ -2841,8 +2843,6 @@ static int moxaload320b(int cardno, unsi
+       unsigned long baseAddr;
+       int i;
+ 
+-      if(len > sizeof(moxaBuff))
+-              return -EINVAL;
+       if(copy_from_user(moxaBuff, tmp, len))
+               return -EFAULT;
+       baseAddr = moxaBaseAddr[cardno];
+diff -urp linux-2.6.8.1-r7/drivers/char/random.c linux-2.6.8.1-r8/drivers/char/random.c
+--- linux-2.6.8.1-r7/drivers/char/random.c     2004-08-14 11:54:48.000000000 +0100
++++ linux-2.6.8.1-r8/drivers/char/random.c     2005-01-09 12:09:55.358306552 +0000
+@@ -1917,7 +1917,7 @@ static int poolsize_strategy(ctl_table *
+                            void __user *oldval, size_t __user *oldlenp,
+                            void __user *newval, size_t newlen, void **context)
+ {
+-      int     len;
++      size_t  len;
+       
+       sysctl_poolsize = random_state->poolinfo.POOLBYTES;
+ 
+diff -urp linux-2.6.8.1-r7/include/linux/writeback.h linux-2.6.8.1-r8/include/linux/writeback.h
+--- linux-2.6.8.1-r7/include/linux/writeback.h 2004-08-14 11:54:49.000000000 +0100
++++ linux-2.6.8.1-r8/include/linux/writeback.h 2005-01-09 12:09:55.000000000 +0000
+@@ -74,6 +74,7 @@ static inline void wait_on_inode(struct 
+ int wakeup_bdflush(long nr_pages);
+ void laptop_io_completion(void);
+ void laptop_sync_completion(void);
++void throttle_vm_writeout(void);
+ 
+ /* These are exported to sysctl. */
+ extern int dirty_background_ratio;
+diff -urp linux-2.6.8.1-r7/mm/mmap.c linux-2.6.8.1-r8/mm/mmap.c
+--- linux-2.6.8.1-r7/mm/mmap.c 2005-01-09 12:06:23.000000000 +0000
++++ linux-2.6.8.1-r8/mm/mmap.c 2005-01-09 12:09:55.000000000 +0000
+@@ -1223,6 +1223,13 @@ int expand_stack(struct vm_area_struct *
+               vm_unacct_memory(grow);
+               return -ENOMEM;
+       }
++      if ((vma->vm_flags & VM_LOCKED) && !capable(CAP_IPC_LOCK) &&
++                      ((vma->vm_mm->locked_vm + grow) << PAGE_SHIFT) >
++                      current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur) {
++              anon_vma_unlock(vma);
++              vm_unacct_memory(grow);
++              return -ENOMEM;
++      }
+       vma->vm_end = address;
+       vma->vm_mm->total_vm += grow;
+       if (vma->vm_flags & VM_LOCKED)
+@@ -1284,6 +1291,13 @@ int expand_stack(struct vm_area_struct *
+               vm_unacct_memory(grow);
+               return -ENOMEM;
+       }
++      if ((vma->vm_flags & VM_LOCKED) && !capable(CAP_IPC_LOCK) &&
++                      ((vma->vm_mm->locked_vm + grow) << PAGE_SHIFT) >
++                      current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur) {
++              anon_vma_unlock(vma);
++              vm_unacct_memory(grow);
++              return -ENOMEM;
++      }
+       vma->vm_start = address;
+       vma->vm_pgoff -= grow;
+       vma->vm_mm->total_vm += grow;
+diff -urp linux-2.6.8.1-r7/mm/page-writeback.c linux-2.6.8.1-r8/mm/page-writeback.c
+--- linux-2.6.8.1-r7/mm/page-writeback.c       2004-08-14 11:55:47.000000000 +0100
++++ linux-2.6.8.1-r8/mm/page-writeback.c       2005-01-09 12:09:55.000000000 +0000
+@@ -276,6 +276,28 @@ void balance_dirty_pages_ratelimited(str
+ }
+ EXPORT_SYMBOL(balance_dirty_pages_ratelimited);
+ 
++void throttle_vm_writeout(void)
++{
++      struct writeback_state wbs;
++      long background_thresh;
++      long dirty_thresh;
++
++        for ( ; ; ) {
++              get_dirty_limits(&wbs, &background_thresh, &dirty_thresh);
++
++                /*
++                 * Boost the allowable dirty threshold a bit for page
++                 * allocators so they don't get DoS'ed by heavy writers
++                 */
++                dirty_thresh += dirty_thresh / 10;      /* wheeee... */
++
++                if (wbs.nr_unstable + wbs.nr_writeback <= dirty_thresh)
++                        break;
++                blk_congestion_wait(WRITE, HZ/10);
++        }
++}
++
++
+ /*
+  * writeback at least _min_pages, and keep writing until the amount of dirty
+  * memory is less than the background threshold, or until we're all clean.
+diff -urp linux-2.6.8.1-r7/mm/vmscan.c linux-2.6.8.1-r8/mm/vmscan.c
+--- linux-2.6.8.1-r7/mm/vmscan.c       2004-08-14 11:54:50.000000000 +0100
++++ linux-2.6.8.1-r8/mm/vmscan.c       2005-01-09 12:10:52.000000000 +0000
+@@ -362,9 +362,6 @@ static int shrink_list(struct list_head 
+ 
+               BUG_ON(PageActive(page));
+ 
+-              if (PageWriteback(page))
+-                      goto keep_locked;
+-
+               sc->nr_scanned++;
+               /* Double the slab pressure for mapped and swapcache pages */
+               if (page_mapped(page) || PageSwapCache(page))
+@@ -841,6 +838,8 @@ shrink_zone(struct zone *zone, struct sc
+                               break;
+               }
+       }
++
++      throttle_vm_writeout();
+ }
+ 
+ /*
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.brk-locked.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.9.brk-locked.patch
new file mode 100644 (file)
index 0000000..6095e84
--- /dev/null
@@ -0,0 +1,303 @@
+diff -ur linux-2.6.10/arch/mips/kernel/irixelf.c linux-2.6.10.plasmaroo/arch/mips/kernel/irixelf.c
+--- linux-2.6.10/arch/mips/kernel/irixelf.c    2004-12-24 21:35:50.000000000 +0000
++++ linux-2.6.10.plasmaroo/arch/mips/kernel/irixelf.c  2005-01-07 15:36:00.383356800 +0000
+@@ -127,7 +127,7 @@
+       end = PAGE_ALIGN(end);
+       if (end <= start)
+               return;
+-      do_brk(start, end - start);
++      do_brk_locked(start, end - start);
+ }
+ 
+ 
+@@ -375,7 +375,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);
+ 
+@@ -562,7 +562,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;
+@@ -853,7 +853,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.6.10/arch/sparc64/kernel/binfmt_aout32.c linux-2.6.10.plasmaroo/arch/sparc64/kernel/binfmt_aout32.c
+--- linux-2.6.10/arch/sparc64/kernel/binfmt_aout32.c   2004-12-24 21:34:45.000000000 +0000
++++ linux-2.6.10.plasmaroo/arch/sparc64/kernel/binfmt_aout32.c 2005-01-07 15:36:00.432349352 +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 __user *)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 __user *)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 __user *)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 __user *)N_TXTADDR(ex),
+                                 ex.a_text+ex.a_data, &pos);
+@@ -389,7 +389,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 -Nur linux-2.6.10/arch/x86_64/ia32/ia32_aout.c linux-2.6.10.plasmaroo/arch/x86_64/ia32/ia32_aout.c
+--- linux-2.6.10/arch/x86_64/ia32/ia32_aout.c  2005-01-03 16:17:04.000000000 -0200
++++ linux-2.6.10.plasmaroo/arch/x86_64/ia32/ia32_aout.c        2005-01-03 16:46:53.846823360 -0200
+@@ -115,7 +115,7 @@
+       end = PAGE_ALIGN(end);
+       if (end <= start)
+               return;
+-      do_brk(start, end - start);
++      do_brk_locked(start, end - start);
+ }
+ 
+ #if CORE_DUMP
+@@ -325,7 +325,7 @@
+               pos = 32;
+               map_size = ex.a_text+ex.a_data;
+ 
+-              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;
+@@ -361,7 +361,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),
+@@ -470,7 +470,7 @@
+               }
+ #endif
+ 
+-              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);
+@@ -494,7 +494,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.6.10/fs/binfmt_aout.c linux-2.6.10.plasmaroo/fs/binfmt_aout.c
+--- linux-2.6.10/fs/binfmt_aout.c      2004-12-24 21:35:50.000000000 +0000
++++ linux-2.6.10.plasmaroo/fs/binfmt_aout.c    2005-01-07 15:36:00.000000000 +0000
+@@ -50,7 +50,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;
+       }
+@@ -323,10 +323,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;
+@@ -347,7 +347,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;
+@@ -382,7 +382,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 __user *)N_TXTADDR(ex),
+                                       ex.a_text+ex.a_data, &pos);
+@@ -488,7 +488,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 __user *)start_addr,
+                       ex.a_text + ex.a_data, &pos);
+@@ -512,7 +512,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.6.10/fs/binfmt_elf.c linux-2.6.10.plasmaroo/fs/binfmt_elf.c
+--- linux-2.6.10/fs/binfmt_elf.c       2004-12-24 21:34:33.000000000 +0000
++++ linux-2.6.10.plasmaroo/fs/binfmt_elf.c     2005-01-07 15:36:00.000000000 +0000
+@@ -88,7 +88,7 @@
+       start = ELF_PAGEALIGN(start);
+       end = ELF_PAGEALIGN(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;
+       }
+@@ -408,7 +408,7 @@
+ 
+       /* Map the last of the bss segment */
+       if (last_bss > elf_bss) {
+-              error = do_brk(elf_bss, last_bss - elf_bss);
++              error = do_brk_locked(elf_bss, last_bss - elf_bss);
+               if (BAD_ADDR(error))
+                       goto out_close;
+       }
+@@ -448,7 +448,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)
+@@ -456,7 +456,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;
+ 
+@@ -1025,7 +1025,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.6.10/include/linux/mm.h linux-2.6.10.plasmaroo/include/linux/mm.h
+--- linux-2.6.10/include/linux/mm.h    2004-12-24 21:33:50.000000000 +0000
++++ linux-2.6.10.plasmaroo/include/linux/mm.h  2005-01-07 15:36:00.000000000 +0000
+@@ -704,6 +704,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);
+ 
+ /* filemap.c */
+ extern unsigned long page_unuse(struct page *);
+diff -ur linux-2.6.10/mm/mmap.c linux-2.6.10.plasmaroo/mm/mmap.c
+--- linux-2.6.10/mm/mmap.c     2004-12-24 21:35:00.000000000 +0000
++++ linux-2.6.10.plasmaroo/mm/mmap.c   2005-01-07 15:36:04.000000000 +0000
+@@ -1826,6 +1826,20 @@
+ 
+ EXPORT_SYMBOL(do_brk);
+ 
++/* 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;
++}
++
++EXPORT_SYMBOL(do_brk_locked);
++
+ /* Release all mmaps. */
+ void exit_mmap(struct mm_struct *mm)
+ {
+@@ -1952,3 +1966,4 @@
+       }
+       return new_vma;
+ }
++
+diff -ur linux-2.6.10/mm/nommu.c linux-2.6.10.plasmaroo/mm/nommu.c
+--- linux-2.6.10/mm/nommu.c    2004-12-24 21:35:25.000000000 +0000
++++ linux-2.6.10.plasmaroo/mm/nommu.c  2005-01-07 15:30:24.000000000 +0000
+@@ -557,6 +557,11 @@
+       return -ENOMEM;
+ }
+ 
++unsigned long do_brk_locked(unsigned long addr, unsigned long len)
++{
++      return -ENOMEM;
++}
++
+ struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr)
+ {
+       return NULL;
similarity index 87%
rename from sys-kernel/win4lin-sources/win4lin-sources-2.4.26-r11.ebuild
rename to sys-kernel/win4lin-sources/win4lin-sources-2.4.26-r12.ebuild
index 00129bd247c04987a8efe73d87553ec1f9be82e9..bdab1c2db46e11144f83ad9f6909d219576e0e5f 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/win4lin-sources/win4lin-sources-2.4.26-r11.ebuild,v 1.1 2004/12/24 18:53:11 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/win4lin-sources-2.4.26-r12.ebuild,v 1.1 2005/01/09 13:00:28 plasmaroo Exp $
 
 # OKV=original kernel version, KV=patched kernel version.  They can be the same.
 
@@ -18,7 +18,7 @@ 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
         http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0415.patch
-        http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0814.patch"
+        http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0814.2.patch"
 HOMEPAGE="http://www.kernel.org/ http://www.netraverse.com/"
 KEYWORDS="x86"
 SLOT="${KV}"
@@ -38,7 +38,7 @@ src_unpack() {
        epatch ${FILESDIR}/${PN}.CAN-2004-0497.patch || die "Failed to add the CAN-2004-0497 patch!"
        epatch ${FILESDIR}/${P}.CAN-2004-0535.patch || die "Failed to add the CAN-2004-0535 patch!"
        epatch ${FILESDIR}/${P}.CAN-2004-0685.patch || die "Failed to add the CAN-2004-0685 patch!"
-       epatch ${DISTDIR}/linux-${OKV}-CAN-2004-0814.patch || die "Failed to add the CAN-2004-0814 patch!"
+       epatch ${DISTDIR}/linux-${OKV}-CAN-2004-0814.2.patch || die "Failed to add the CAN-2004-0814 patch!"
        epatch ${FILESDIR}/${P}.FPULockup-53804.patch || die "Failed to apply FPU-lockup patch!"
        epatch ${FILESDIR}/${P}.cmdlineLeak.patch || die "Failed to apply the /proc/cmdline patch!"
        epatch ${FILESDIR}/${P}.XDRWrapFix.patch || die "Failed to apply the kNFSd XDR patch!"
@@ -50,7 +50,8 @@ src_unpack() {
        epatch ${FILESDIR}/${P}.CAN-2004-1016.patch || die "Failed to apply the CAN-2004-1016 patch!"
        epatch ${FILESDIR}/${P}.CAN-2004-1056.patch || die "Failed to apply the CAN-2004-1056 patch!"
        epatch ${FILESDIR}/${P}.CAN-2004-1137.patch || die "Failed to apply the CAN-2004-1137 patch!"
-
+       epatch ${FILESDIR}/${P}.77094.patch || die "Failed to apply bug #77094 patch!"
+       epatch ${FILESDIR}/${P}.brk-locked.patch || die "Failed to apply do_brk_locked() patch!"
 
        kernel_universal_unpack
 }
similarity index 86%
rename from sys-kernel/win4lin-sources/win4lin-sources-2.6.9-r5.ebuild
rename to sys-kernel/win4lin-sources/win4lin-sources-2.6.9-r6.ebuild
index 351912842197ceb6a91af13385e8f96bbebab875..a3cd93fe6941f39bfcf8205932a7b2ad71010f11 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/win4lin-sources/win4lin-sources-2.6.9-r5.ebuild,v 1.1 2004/12/20 22:09:18 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/win4lin-sources/win4lin-sources-2.6.9-r6.ebuild,v 1.1 2005/01/09 13:00:28 plasmaroo Exp $
 
 ETYPE="sources"
 inherit kernel-2
@@ -21,7 +21,10 @@ UNIPATCH_LIST="
        ${FILESDIR}/${P}.CAN-2004-1056.patch
        ${FILESDIR}/${P}.CAN-2004-1137.patch
        ${FILESDIR}/${P}.CAN-2004-1151.patch
-       ${FILESDIR}/${P}.shmLocking.patch"
+       ${FILESDIR}/${P}.shmLocking.patch
+       ${FILESDIR}/${P}.75963.patch
+       ${FILESDIR}/${P}.brk-locked.patch
+       ${FILESDIR}/${P}.77094.patch"
 
 S=${WORKDIR}/linux-${KV}