packages: kernel/kernel-grsec_full.patch left: 1 out of 19 hunks FAILED -- ...
arekm
arekm at pld-linux.org
Wed Dec 16 10:46:19 CET 2009
Author: arekm Date: Wed Dec 16 09:46:19 2009 GMT
Module: packages Tag: HEAD
---- Log message:
left: 1 out of 19 hunks FAILED -- saving rejects to file fs/proc/base.c.rej
---- Files affected:
packages/kernel:
kernel-grsec_full.patch (1.22 -> 1.23)
---- Diffs:
================================================================
Index: packages/kernel/kernel-grsec_full.patch
diff -u packages/kernel/kernel-grsec_full.patch:1.22 packages/kernel/kernel-grsec_full.patch:1.23
--- packages/kernel/kernel-grsec_full.patch:1.22 Wed Dec 16 09:55:21 2009
+++ packages/kernel/kernel-grsec_full.patch Wed Dec 16 10:46:14 2009
@@ -29972,24 +29972,44 @@
newattrs.ia_valid = ATTR_CTIME;
if (user != (uid_t) -1) {
newattrs.ia_valid |= ATTR_UID;
-@@ -775,7 +775,7 @@ SYSCALL_DEFINE3(chown, const char __user
+@@ -770,17 +770,17 @@ SYSCALL_DEFINE3(chown, const char __user
+ goto out;
+ error = mnt_want_write(path.mnt);
+ if (error)
+ goto out_release;
+ #ifdef CONFIG_VSERVER_COWBL
error = cow_check_and_break(&path);
if (!error)
#endif
- error = chown_common(path.dentry, user, group);
-+ error = chown_common(path.dentry, user, group, path.nmt);
++ error = chown_common(path.dentry, user, group, path.mnt);
mnt_drop_write(path.mnt);
out_release:
path_put(&path);
-@@ -804,7 +804,7 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons
+ out:
+ return error;
+ }
+
+ SYSCALL_DEFINE5(fchownat, int, dfd, const char __user *, filename, uid_t, user,
+@@ -799,17 +799,17 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons
+ goto out;
+ error = mnt_want_write(path.mnt);
+ if (error)
+ goto out_release;
+ #ifdef CONFIG_VSERVER_COWBL
error = cow_check_and_break(&path);
if (!error)
#endif
- error = chown_common(path.dentry, user, group);
-+ error = chown_common(path.dentry, user, group, path.nmt);
++ error = chown_common(path.dentry, user, group, path.mnt);
mnt_drop_write(path.mnt);
out_release:
path_put(&path);
+ out:
+ return error;
+ }
+
+ SYSCALL_DEFINE3(lchown, const char __user *, filename, uid_t, user, gid_t, group)
@@ -827,7 +827,7 @@ SYSCALL_DEFINE3(lchown, const char __use
error = cow_check_and_break(&path);
if (!error)
@@ -30477,7 +30497,12 @@
};
static int proc_tgid_base_readdir(struct file * filp,
-@@ -2686,7 +2770,14 @@ static struct dentry *proc_pid_instantia
+@@ -2784,17 +2784,24 @@ static struct dentry *proc_pid_instantia
+ {
+ struct dentry *error = ERR_PTR(-ENOENT);
+ struct inode *inode;
+
+ inode = proc_pid_make_inode(dir->i_sb, task);
if (!inode)
goto out;
@@ -30492,7 +30517,18 @@
inode->i_op = &proc_tgid_base_inode_operations;
inode->i_fop = &proc_tgid_base_operations;
inode->i_flags|=S_IMMUTABLE;
-@@ -2728,7 +2819,11 @@ struct dentry *proc_pid_lookup(struct in
+
+ inode->i_nlink = 2 + pid_entry_count_dirs(tgid_base_stuff,
+ ARRAY_SIZE(tgid_base_stuff));
+
+ dentry->d_op = &pid_dentry_operations;
+
+@@ -2826,17 +2826,21 @@ struct dentry *proc_pid_lookup(struct in
+ rcu_read_lock();
+ task = find_task_by_pid_ns(tgid, ns);
+ if (task)
+ get_task_struct(task);
+ rcu_read_unlock();
if (!task)
goto out;
@@ -30504,6 +30540,11 @@
put_task_struct(task);
out:
return result;
+ }
+
+ /*
+ * Find the first task with tgid >= tgid
+ *
@@ -2793,6 +2888,10 @@ int proc_pid_readdir(struct file * filp,
{
unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY;
@@ -45964,7 +46005,18 @@
if (request == PTRACE_ATTACH) {
ret = ptrace_attach(child);
/*
-@@ -663,7 +663,7 @@ int generic_ptrace_peekdata(struct task_
+--- l/kernel/ptrace.c~ 2009-12-16 10:30:10.024443147 +0100
++++ l/kernel/ptrace.c 2009-12-16 10:31:34.308392396 +0100
+@@ -654,25 +654,25 @@ SYSCALL_DEFINE4(ptrace, long, request, l
+ unlock_kernel();
+ return ret;
+ }
+
+ int generic_ptrace_peekdata(struct task_struct *tsk, long addr, long data)
+ {
+ unsigned long tmp;
+ int copied;
+
copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
if (copied != sizeof(tmp))
return -EIO;
@@ -45973,6 +46025,15 @@
}
int generic_ptrace_pokedata(struct task_struct *tsk, long addr, long data)
+ {
+ int copied;
+
+ copied = access_process_vm(tsk, addr, &data, sizeof(data), 1);
+ return (copied == sizeof(data)) ? 0 : -EIO;
+ }
+
+ #if defined CONFIG_COMPAT
+ #include <linux/compat.h>
diff -urNp linux-2.6.32.1/kernel/relay.c linux-2.6.32.1/kernel/relay.c
--- linux-2.6.32.1/kernel/relay.c 2009-12-02 22:51:21.000000000 -0500
+++ linux-2.6.32.1/kernel/relay.c 2009-12-14 18:33:59.442723685 -0500
@@ -48303,7 +48364,7 @@
return error;
}
-@@ -1769,6 +2000,13 @@ static void remove_vma_list(struct mm_st
+@@ -2002,6 +2002,13 @@ static void remove_vma_list(struct mm_st
do {
long nrpages = vma_pages(vma);
@@ -48314,9 +48375,9 @@
+ }
+#endif
+
- mm->total_vm -= nrpages;
+ // mm->total_vm -= nrpages;
+ vx_vmpages_sub(mm, nrpages);
vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
- vma = remove_vma(vma);
@@ -1813,6 +2051,16 @@ detach_vmas_to_be_unmapped(struct mm_str
insertion_point = (prev ? &prev->vm_next : &mm->mmap);
@@ -48567,7 +48628,7 @@
if (locked > lock_limit && !capable(CAP_IPC_LOCK))
return -EAGAIN;
}
-@@ -2041,22 +2429,22 @@ unsigned long do_brk(unsigned long addr,
+@@ -2435,23 +2435,23 @@ unsigned long do_brk(unsigned long addr,
/*
* Clear old maps. this also does some error checking for us
*/
@@ -48589,8 +48650,10 @@
if (mm->map_count > sysctl_max_map_count)
return -ENOMEM;
-- if (security_vm_enough_memory(len >> PAGE_SHIFT))
-+ if (security_vm_enough_memory(charged))
+- if (security_vm_enough_memory(len >> PAGE_SHIFT) ||
+- !vx_vmpages_avail(mm, len >> PAGE_SHIFT))
++ if (security_vm_enough_memory(charged) ||
++ !vx_vmpages_avail(mm, charged))
return -ENOMEM;
/* Can we just expand an old private anonymous mapping? */
@@ -48617,16 +48680,21 @@
vma->vm_mm = mm;
vma->vm_start = addr;
vma->vm_end = addr + len;
-@@ -2082,11 +2481,12 @@ unsigned long do_brk(unsigned long addr,
+@@ -2488,14 +2488,15 @@ unsigned long do_brk(unsigned long addr,
vma->vm_page_prot = vm_get_page_prot(flags);
vma_link(mm, vma, prev, rb_link, rb_parent);
out:
-- mm->total_vm += len >> PAGE_SHIFT;
-+ mm->total_vm += charged;
+- // mm->total_vm += len >> PAGE_SHIFT;
+- vx_vmpages_add(mm, len >> PAGE_SHIFT);
++ // mm->total_vm += charged;
++ vx_vmpages_add(mm, charged);
+
if (flags & VM_LOCKED) {
if (!mlock_vma_pages_range(vma, addr, addr + len))
-- mm->locked_vm += (len >> PAGE_SHIFT);
-+ mm->locked_vm += charged;
+- // mm->locked_vm += (len >> PAGE_SHIFT);
+- vx_vmlocked_add(mm, len >> PAGE_SHIFT);
++ // mm->locked_vm += (charged);
++ vx_vmlocked_add(mm, charged);
}
+ track_exec_limit(mm, addr, addr + len, flags);
return addr;
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-grsec_full.patch?r1=1.22&r2=1.23&f=u
More information about the pld-cvs-commit
mailing list