summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Cox <steel300@gentoo.org>2004-04-17 02:08:43 +0000
committerJason Cox <steel300@gentoo.org>2004-04-17 02:08:43 +0000
commit1eb6ed2236336de527e92f83a8fa259c9ddae56d (patch)
tree27dc49657934f3d9f14496add3eebab35a4964da
parentInitial ebuild by Josh Glover <gentoo@jmglov.net> in bug #48064. (Manifest re... (diff)
downloadgentoo-2-1eb6ed2236336de527e92f83a8fa259c9ddae56d.tar.gz
gentoo-2-1eb6ed2236336de527e92f83a8fa259c9ddae56d.tar.bz2
gentoo-2-1eb6ed2236336de527e92f83a8fa259c9ddae56d.zip
Fix bad patch. Thanks to `Kumba.
-rw-r--r--sys-kernel/ck-sources/ChangeLog5
-rw-r--r--sys-kernel/ck-sources/files/ck-sources-2.6.4.CAN-2004-0109.patch99
2 files changed, 91 insertions, 13 deletions
diff --git a/sys-kernel/ck-sources/ChangeLog b/sys-kernel/ck-sources/ChangeLog
index c5c4962eb44b..568f0f39b61a 100644
--- a/sys-kernel/ck-sources/ChangeLog
+++ b/sys-kernel/ck-sources/ChangeLog
@@ -1,6 +1,9 @@
# ChangeLog for sys-kernel/ck-sources
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.29 2004/04/15 08:09:07 plasmaroo Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.30 2004/04/17 02:08:43 steel300 Exp $
+
+ 16 Apr 2004; <coxj@gentoo.org> files/ck-sources-2.6.4.CAN-2004-0109.patch:
+ Fix bad patch.
15 Apr 2004; <plasmaroo@gentoo.org> ck-sources-2.4.25-r1.ebuild,
ck-sources-2.6.4-r2.ebuild, files/ck-sources-2.4.25.CAN-2004-0109.patch,
diff --git a/sys-kernel/ck-sources/files/ck-sources-2.6.4.CAN-2004-0109.patch b/sys-kernel/ck-sources/files/ck-sources-2.6.4.CAN-2004-0109.patch
index 03f49e4f6d7d..d7726c2e5aaf 100644
--- a/sys-kernel/ck-sources/files/ck-sources-2.6.4.CAN-2004-0109.patch
+++ b/sys-kernel/ck-sources/files/ck-sources-2.6.4.CAN-2004-0109.patch
@@ -1,13 +1,88 @@
---- 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);
+--- 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>
-+ /* 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)
+ #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 */
+
+