summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Yamin <plasmaroo@gentoo.org>2004-04-15 07:30:13 +0000
committerTim Yamin <plasmaroo@gentoo.org>2004-04-15 07:30:13 +0000
commita5d33f931b5523936ffaa7b11913230467353f2f (patch)
tree792a66a4c367246dced9bf0057c64e3e30a387a7 /sys-kernel/win4lin-sources/files
parentVersion bump, cleanup (diff)
downloadhistorical-a5d33f931b5523936ffaa7b11913230467353f2f.tar.gz
historical-a5d33f931b5523936ffaa7b11913230467353f2f.tar.bz2
historical-a5d33f931b5523936ffaa7b11913230467353f2f.zip
Version bump for the CAN-2004-0109 issue; bug #47881. Old versions removed.
Diffstat (limited to 'sys-kernel/win4lin-sources/files')
-rw-r--r--sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r23
-rw-r--r--sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.25-r1 (renamed from sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.25)0
-rw-r--r--sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.2-r13
-rw-r--r--sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.5-r13
-rw-r--r--sys-kernel/win4lin-sources/files/do_brk_fix.patch12
-rw-r--r--sys-kernel/win4lin-sources/files/win4lin-sources-2.4.25.CAN-2004-0109.patch87
-rw-r--r--sys-kernel/win4lin-sources/files/win4lin-sources-2.4.CAN-2003-0985.patch13
-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.4.rtc_fix.patch180
-rw-r--r--sys-kernel/win4lin-sources/files/win4lin-sources-2.6.5.CAN-2004-0109.patch88
-rw-r--r--sys-kernel/win4lin-sources/files/win4lin-sources-2.6.CAN-2003-0985.patch13
-rw-r--r--sys-kernel/win4lin-sources/files/win4lin-sources-2.6.munmap.patch53
12 files changed, 178 insertions, 304 deletions
diff --git a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r2 b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r2
deleted file mode 100644
index c0bee3c77be1..000000000000
--- a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.23-r2
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 642af5ab5e1fc63685fde85e9ae601e4 linux-2.4.23.tar.bz2 29832609
-MD5 32e4cda45fa0f090dffa157bc4504a4e mki-adapter.patch 181483
-MD5 cc54742477d90496435613318c8ef83b Kernel-Win4Lin3-2.4.23.patch 23448
diff --git a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.25 b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.25-r1
index 3df65a061aca..3df65a061aca 100644
--- a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.25
+++ b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.4.25-r1
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
deleted file mode 100644
index 62d70d246ade..000000000000
--- a/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.2-r1
+++ /dev/null
@@ -1,3 +0,0 @@
-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/digest-win4lin-sources-2.6.5-r1 b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.5-r1
new file mode 100644
index 000000000000..97653e192582
--- /dev/null
+++ b/sys-kernel/win4lin-sources/files/digest-win4lin-sources-2.6.5-r1
@@ -0,0 +1,3 @@
+MD5 9a76bf64c1151369b250f967d83077aa linux-2.6.5.tar.bz2 34684611
+MD5 aa98c4f41bcce5be5ab3763f6534288b mki-adapter26_1_3_4.patch 126302
+MD5 32578c28c4bb1b8c76ff84c3e474d52e Kernel-Win4Lin3-2.6.5.patch 26576
diff --git a/sys-kernel/win4lin-sources/files/do_brk_fix.patch b/sys-kernel/win4lin-sources/files/do_brk_fix.patch
deleted file mode 100644
index fef1f1e981e2..000000000000
--- a/sys-kernel/win4lin-sources/files/do_brk_fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/mm/mmap.c Fri Sep 12 06:44:06 2003
-+++ b/mm/mmap.c Thu Oct 2 01:18:19 2003
-@@ -1041,6 +1041,9 @@
- if (!len)
- return addr;
-
-+ if ((addr + len) > TASK_SIZE || (addr + len) < addr)
-+ return -EINVAL;
-+
- /*
- * mlock MCL_FUTURE?
- */
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.25.CAN-2004-0109.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.25.CAN-2004-0109.patch
new file mode 100644
index 000000000000..d02b51c57fc6
--- /dev/null
+++ b/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.25.CAN-2004-0109.patch
@@ -0,0 +1,87 @@
+--- linux/fs/isofs/rock.c.orig
++++ linux/fs/isofs/rock.c
+@@ -14,6 +14,7 @@
+ #include <linux/slab.h>
+ #include <linux/pagemap.h>
+ #include <linux/smp_lock.h>
++#include <asm/page.h>
+
+ #include "rock.h"
+
+@@ -419,7 +420,7 @@
+ return 0;
+ }
+
+-static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr)
++static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit)
+ {
+ int slen;
+ int rootflag;
+@@ -431,16 +432,25 @@
+ rootflag = 0;
+ switch (slp->flags & ~1) {
+ case 0:
++ if (slp->len > plimit - rpnt)
++ return NULL;
+ memcpy(rpnt, slp->text, slp->len);
+ rpnt+=slp->len;
+ break;
++ case 2:
++ if (rpnt >= plimit)
++ return NULL;
++ *rpnt++='.';
++ break;
+ case 4:
++ if (2 > plimit - rpnt)
++ return NULL;
+ *rpnt++='.';
+- /* fallthru */
+- case 2:
+ *rpnt++='.';
+ break;
+ case 8:
++ if (rpnt >= plimit)
++ return NULL;
+ rootflag = 1;
+ *rpnt++='/';
+ break;
+@@ -457,17 +467,23 @@
+ * If there is another SL record, and this component
+ * record isn't continued, then add a slash.
+ */
+- if ((!rootflag) && (rr->u.SL.flags & 1) && !(oldslp->flags & 1))
++ if ((!rootflag) && (rr->u.SL.flags & 1) &&
++ !(oldslp->flags & 1)) {
++ if (rpnt >= plimit)
++ return NULL;
+ *rpnt++='/';
++ }
+ break;
+ }
+
+ /*
+ * If this component record isn't continued, then append a '/'.
+ */
+- if (!rootflag && !(oldslp->flags & 1))
++ if (!rootflag && !(oldslp->flags & 1)) {
++ if (rpnt >= plimit)
++ return NULL;
+ *rpnt++='/';
+-
++ }
+ }
+ return rpnt;
+ }
+@@ -548,7 +564,10 @@
+ CHECK_SP(goto out);
+ break;
+ case SIG('S', 'L'):
+- rpnt = get_symlink_chunk(rpnt, rr);
++ rpnt = get_symlink_chunk(rpnt, rr,
++ link + (PAGE_SIZE - 1));
++ if (rpnt == NULL)
++ goto out;
+ break;
+ case SIG('C', 'E'):
+ /* This tells is if there is a continuation record */
+
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.CAN-2003-0985.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.CAN-2003-0985.patch
deleted file mode 100644
index dacf6ed810f9..000000000000
--- a/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.CAN-2003-0985.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- linux/mm/mremap.c.orig 2004-01-05 17:01:21.382104120 +0000
-+++ linux/mm/mremap.c 2004-01-05 17:15:25.689749848 +0000
-@@ -315,6 +315,10 @@
- old_len = PAGE_ALIGN(old_len);
- new_len = PAGE_ALIGN(new_len);
-
-+ /* Don't allow the degenerate cases */
-+ if (!old_len || !new_len)
-+ goto out;
-+
- /* new_addr is only valid if MREMAP_FIXED is specified */
- if (flags & MREMAP_FIXED) {
- if (new_addr & ~PAGE_MASK)
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
deleted file mode 100644
index e120b35b7adb..000000000000
--- a/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.munmap.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-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.4.rtc_fix.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.rtc_fix.patch
deleted file mode 100644
index 76a663c6e89d..000000000000
--- a/sys-kernel/win4lin-sources/files/win4lin-sources-2.4.rtc_fix.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-diff -urN linux-2.4.23/arch/cris/drivers/ds1302.c linux-2.4.24/arch/cris/drivers/ds1302.c
---- linux-2.4.23/arch/cris/drivers/ds1302.c 2003-08-25 04:44:39.000000000 -0700
-+++ linux-2.4.24/arch/cris/drivers/ds1302.c 2004-01-05 05:53:56.000000000 -0800
-@@ -346,6 +346,7 @@
- {
- struct rtc_time rtc_tm;
-
-+ memset(&rtc_tm, 0, sizeof (struct rtc_time));
- get_rtc_time(&rtc_tm);
- if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))
- return -EFAULT;
-diff -urN linux-2.4.23/arch/cris/drivers/pcf8563.c linux-2.4.24/arch/cris/drivers/pcf8563.c
---- linux-2.4.23/arch/cris/drivers/pcf8563.c 2003-08-25 04:44:39.000000000 -0700
-+++ linux-2.4.24/arch/cris/drivers/pcf8563.c 2004-01-05 05:53:56.000000000 -0800
-@@ -220,6 +220,7 @@
- {
- struct rtc_time tm;
-
-+ memset(&tm, 0, sizeof (struct rtc_time));
- get_rtc_time(&tm);
-
- if (copy_to_user((struct rtc_time *) arg, &tm, sizeof tm)) {
-diff -urN linux-2.4.23/arch/m68k/bvme6000/rtc.c linux-2.4.24/arch/m68k/bvme6000/rtc.c
---- linux-2.4.23/arch/m68k/bvme6000/rtc.c 2003-06-13 07:51:31.000000000 -0700
-+++ linux-2.4.24/arch/m68k/bvme6000/rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -54,6 +54,7 @@
- /* Ensure clock and real-time-mode-register are accessible */
- msr = rtc->msr & 0xc0;
- rtc->msr = 0x40;
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- do {
- wtime.tm_sec = BCD2BIN(rtc->bcd_sec);
- wtime.tm_min = BCD2BIN(rtc->bcd_min);
-diff -urN linux-2.4.23/arch/m68k/mvme16x/rtc.c linux-2.4.24/arch/m68k/mvme16x/rtc.c
---- linux-2.4.23/arch/m68k/mvme16x/rtc.c 2003-06-13 07:51:31.000000000 -0700
-+++ linux-2.4.24/arch/m68k/mvme16x/rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -52,6 +52,7 @@
- cli();
- /* Ensure clock and real-time-mode-register are accessible */
- rtc->ctrl = RTC_READ;
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- wtime.tm_sec = BCD2BIN(rtc->bcd_sec);
- wtime.tm_min = BCD2BIN(rtc->bcd_min);
- wtime.tm_hour = BCD2BIN(rtc->bcd_hr);
-diff -urN linux-2.4.23/arch/ppc64/kernel/rtc.c linux-2.4.24/arch/ppc64/kernel/rtc.c
---- linux-2.4.23/arch/ppc64/kernel/rtc.c 2003-06-13 07:51:32.000000000 -0700
-+++ linux-2.4.24/arch/ppc64/kernel/rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -96,6 +96,7 @@
- switch (cmd) {
- case RTC_RD_TIME: /* Read the time/date from RTC */
- {
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- ppc_md.get_rtc_time(&wtime);
- break;
- }
-diff -urN linux-2.4.23/drivers/acorn/char/i2c.c linux-2.4.24/drivers/acorn/char/i2c.c
---- linux-2.4.23/drivers/acorn/char/i2c.c 2003-08-25 04:44:40.000000000 -0700
-+++ linux-2.4.24/drivers/acorn/char/i2c.c 2004-01-05 05:53:56.000000000 -0800
-@@ -166,6 +166,7 @@
- break;
-
- case RTC_RD_TIME:
-+ memset(&rtctm, 0, sizeof(struct rtc_time));
- get_rtc_time(&rtc_raw, &year);
- rtctm.tm_sec = rtc_raw.secs;
- rtctm.tm_min = rtc_raw.mins;
-diff -urN linux-2.4.23/drivers/char/ds1286.c linux-2.4.24/drivers/char/ds1286.c
---- linux-2.4.23/drivers/char/ds1286.c 2003-08-25 04:44:41.000000000 -0700
-+++ linux-2.4.24/drivers/char/ds1286.c 2004-01-05 05:53:56.000000000 -0800
-@@ -173,7 +173,7 @@
- * means "don't care" or "match all". Only the tm_hour,
- * tm_min, and tm_sec values are filled in.
- */
--
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- ds1286_get_alm_time(&wtime);
- break;
- }
-@@ -216,6 +216,7 @@
- }
- case RTC_RD_TIME: /* Read the time/date from RTC */
- {
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- ds1286_get_time(&wtime);
- break;
- }
-diff -urN linux-2.4.23/drivers/char/efirtc.c linux-2.4.24/drivers/char/efirtc.c
---- linux-2.4.23/drivers/char/efirtc.c 2003-06-13 07:51:32.000000000 -0700
-+++ linux-2.4.24/drivers/char/efirtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -118,6 +118,7 @@
- static void
- convert_from_efi_time(efi_time_t *eft, struct rtc_time *wtime)
- {
-+ memset(wtime, 0, sizeof(struct rtc_time));
- wtime->tm_sec = eft->second;
- wtime->tm_min = eft->minute;
- wtime->tm_hour = eft->hour;
-diff -urN linux-2.4.23/drivers/char/ip27-rtc.c linux-2.4.24/drivers/char/ip27-rtc.c
---- linux-2.4.23/drivers/char/ip27-rtc.c 2003-08-25 04:44:41.000000000 -0700
-+++ linux-2.4.24/drivers/char/ip27-rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -83,6 +83,7 @@
- switch (cmd) {
- case RTC_RD_TIME: /* Read the time/date from RTC */
- {
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- get_rtc_time(&wtime);
- break;
- }
-diff -urN linux-2.4.23/drivers/char/mips_rtc.c linux-2.4.24/drivers/char/mips_rtc.c
---- linux-2.4.23/drivers/char/mips_rtc.c 2003-08-25 04:44:41.000000000 -0700
-+++ linux-2.4.24/drivers/char/mips_rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -82,6 +82,7 @@
-
- switch (cmd) {
- case RTC_RD_TIME: /* Read the time/date from RTC */
-+ memset(&rtc_tm, 0, sizeof(struct rtc_time));
- curr_time = rtc_get_time();
- to_tm(curr_time, &rtc_tm);
- rtc_tm.tm_year -= 1900;
-diff -urN linux-2.4.23/drivers/char/rtc.c linux-2.4.24/drivers/char/rtc.c
---- linux-2.4.23/drivers/char/rtc.c 2003-11-28 10:26:20.000000000 -0800
-+++ linux-2.4.24/drivers/char/rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -362,7 +362,7 @@
- * means "don't care" or "match all". Only the tm_hour,
- * tm_min, and tm_sec values are filled in.
- */
--
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- get_rtc_alm_time(&wtime);
- break;
- }
-@@ -406,6 +406,7 @@
- }
- case RTC_RD_TIME: /* Read the time/date from RTC */
- {
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- get_rtc_time(&wtime);
- break;
- }
-diff -urN linux-2.4.23/drivers/hil/hp_sdc_rtc.c linux-2.4.24/drivers/hil/hp_sdc_rtc.c
---- linux-2.4.23/drivers/hil/hp_sdc_rtc.c 2003-06-13 07:51:33.000000000 -0700
-+++ linux-2.4.24/drivers/hil/hp_sdc_rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -561,6 +561,7 @@
- }
- case RTC_ALM_READ: /* Read the present alarm time */
- {
-+ memset(&ttime, 0, sizeof(struct timeval));
- if (hp_sdc_rtc_read_mt(&ttime)) return -EFAULT;
- break;
- }
-@@ -609,6 +610,7 @@
- }
- case RTC_RD_TIME: /* Read the time/date from RTC */
- {
-+ memset(&wtime, 0, sizeof(struct rtc_time));
- if (hp_sdc_rtc_read_bbrtc(&wtime)) return -EFAULT;
- break;
- }
-diff -urN linux-2.4.23/drivers/macintosh/rtc.c linux-2.4.24/drivers/macintosh/rtc.c
---- linux-2.4.23/drivers/macintosh/rtc.c 2002-02-25 11:37:58.000000000 -0800
-+++ linux-2.4.24/drivers/macintosh/rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -64,6 +64,7 @@
- case RTC_RD_TIME:
- if (ppc_md.get_rtc_time)
- {
-+ memset(&rtc_tm, 0, sizeof(struct rtc_time));
- get_rtc_time(&rtc_tm);
-
- if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))
-diff -urN linux-2.4.23/drivers/sbus/char/rtc.c linux-2.4.24/drivers/sbus/char/rtc.c
---- linux-2.4.23/drivers/sbus/char/rtc.c 2001-10-10 23:42:47.000000000 -0700
-+++ linux-2.4.24/drivers/sbus/char/rtc.c 2004-01-05 05:53:56.000000000 -0800
-@@ -89,6 +89,7 @@
- switch (cmd)
- {
- case RTCGET:
-+ memset(&rtc_tm, 0, sizeof(struct rtc_time));
- get_rtc_time(&rtc_tm);
-
- if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.5.CAN-2004-0109.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.5.CAN-2004-0109.patch
new file mode 100644
index 000000000000..d7726c2e5aaf
--- /dev/null
+++ b/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.5.CAN-2004-0109.patch
@@ -0,0 +1,88 @@
+--- linux/fs/isofs/rock.c.orig
++++ linux/fs/isofs/rock.c
+@@ -14,6 +14,7 @@
+ #include <linux/slab.h>
+ #include <linux/pagemap.h>
+ #include <linux/smp_lock.h>
+ #include <linux/buffer_head.h>
++#include <asm/page.h>
+
+ #include "rock.h"
+@@ -419,7 +420,7 @@ int parse_rock_ridge_inode_internal(stru
+ return 0;
+ }
+
+-static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr)
++static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit)
+ {
+ int slen;
+ int rootflag;
+@@ -431,16 +432,25 @@ static char *get_symlink_chunk(char *rpn
+ rootflag = 0;
+ switch (slp->flags & ~1) {
+ case 0:
++ if (slp->len > plimit - rpnt)
++ return NULL;
+ memcpy(rpnt, slp->text, slp->len);
+ rpnt+=slp->len;
+ break;
++ case 2:
++ if (rpnt >= plimit)
++ return NULL;
++ *rpnt++='.';
++ break;
+ case 4:
++ if (2 > plimit - rpnt)
++ return NULL;
+ *rpnt++='.';
+- /* fallthru */
+- case 2:
+ *rpnt++='.';
+ break;
+ case 8:
++ if (rpnt >= plimit)
++ return NULL;
+ rootflag = 1;
+ *rpnt++='/';
+ break;
+@@ -457,17 +467,23 @@ static char *get_symlink_chunk(char *rpn
+ * If there is another SL record, and this component
+ * record isn't continued, then add a slash.
+ */
+- if ((!rootflag) && (rr->u.SL.flags & 1) && !(oldslp->flags & 1))
++ if ((!rootflag) && (rr->u.SL.flags & 1) &&
++ !(oldslp->flags & 1)) {
++ if (rpnt >= plimit)
++ return NULL;
+ *rpnt++='/';
++ }
+ break;
+ }
+
+ /*
+ * If this component record isn't continued, then append a '/'.
+ */
+- if (!rootflag && !(oldslp->flags & 1))
++ if (!rootflag && !(oldslp->flags & 1)) {
++ if (rpnt >= plimit)
++ return NULL;
+ *rpnt++='/';
+-
++ }
+ }
+ return rpnt;
+ }
+@@ -548,7 +564,10 @@ static int rock_ridge_symlink_readpage(s
+ CHECK_SP(goto out);
+ break;
+ case SIG('S', 'L'):
+- rpnt = get_symlink_chunk(rpnt, rr);
++ rpnt = get_symlink_chunk(rpnt, rr,
++ link + (PAGE_SIZE - 1));
++ if (rpnt == NULL)
++ goto out;
+ break;
+ case SIG('C', 'E'):
+ /* This tells is if there is a continuation record */
+
+
diff --git a/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.CAN-2003-0985.patch b/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.CAN-2003-0985.patch
deleted file mode 100644
index 03f49e4f6d7d..000000000000
--- a/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.CAN-2003-0985.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- linux/mm/mremap.c.orig 2004-01-05 17:01:21.382104120 +0000
-+++ linux/mm/mremap.c 2004-01-05 17:15:25.689749848 +0000
-@@ -270,6 +270,10 @@
- old_len = PAGE_ALIGN(old_len);
- new_len = PAGE_ALIGN(new_len);
-
-+ /* Don't allow the degenerate cases */
-+ if (!old_len || !new_len)
-+ goto out;
-+
- /* new_addr is only valid if MREMAP_FIXED is specified */
- if (flags & MREMAP_FIXED) {
- if (new_addr & ~PAGE_MASK)
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
deleted file mode 100644
index 47a199c870db..000000000000
--- a/sys-kernel/win4lin-sources/files/win4lin-sources-2.6.munmap.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-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;