19 |
fs/ioctl.c | 5 +++++ |
fs/ioctl.c | 5 +++++ |
20 |
fs/namei.c | 38 ++++++++++++++++++++++++++++++++++++++ |
fs/namei.c | 38 ++++++++++++++++++++++++++++++++++++++ |
21 |
fs/namespace.c | 25 ++++++++++++++++++++++++- |
fs/namespace.c | 25 ++++++++++++++++++++++++- |
22 |
fs/open.c | 15 ++++++++++++++- |
fs/open.c | 28 +++++++++++++++++++++++++++- |
23 |
fs/proc/proc_misc.c | 1 + |
fs/proc/proc_misc.c | 1 + |
24 |
include/linux/init_task.h | 2 ++ |
include/linux/init_task.h | 2 ++ |
25 |
include/linux/sched.h | 4 ++++ |
include/linux/sched.h | 4 ++++ |
29 |
kernel/module.c | 7 +++++-- |
kernel/module.c | 7 +++++-- |
30 |
kernel/ptrace.c | 3 +++ |
kernel/ptrace.c | 3 +++ |
31 |
kernel/sched.c | 3 +++ |
kernel/sched.c | 3 +++ |
32 |
kernel/signal.c | 7 +++++++ |
kernel/signal.c | 9 +++++++++ |
33 |
kernel/sys.c | 11 +++++++++++ |
kernel/sys.c | 11 +++++++++++ |
34 |
kernel/sysctl.c | 11 +++++++++++ |
kernel/sysctl.c | 11 +++++++++++ |
35 |
kernel/time.c | 7 +++++++ |
kernel/time.c | 7 +++++++ |
44 |
net/unix/af_unix.c | 4 ++++ |
net/unix/af_unix.c | 4 ++++ |
45 |
security/Kconfig | 2 ++ |
security/Kconfig | 2 ++ |
46 |
security/Makefile | 3 +++ |
security/Makefile | 3 +++ |
47 |
42 files changed, 273 insertions(+), 10 deletions(-) |
42 files changed, 288 insertions(+), 10 deletions(-) |
48 |
|
|
49 |
--- linux-2.6.15-54.77.orig/arch/alpha/kernel/ptrace.c |
--- linux-2.6.15-54.77.orig/arch/alpha/kernel/ptrace.c |
50 |
+++ linux-2.6.15-54.77/arch/alpha/kernel/ptrace.c |
+++ linux-2.6.15-54.77/arch/alpha/kernel/ptrace.c |
645 |
|
|
646 |
set_fs_root(current->fs, nd.mnt, nd.dentry); |
set_fs_root(current->fs, nd.mnt, nd.dentry); |
647 |
set_fs_altroot(); |
set_fs_altroot(); |
648 |
@@ -1159,6 +1170,8 @@ EXPORT_SYMBOL(sys_close); |
@@ -658,6 +669,9 @@ SYSCALL_DEFINE2(fchmod, unsigned int, fd |
649 |
|
err = -EPERM; |
650 |
|
if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) |
651 |
|
goto out_putf; |
652 |
|
+ err = ccs_chmod_permission(dentry, file->f_vfsmnt, mode); |
653 |
|
+ if (err) |
654 |
|
+ goto out_putf; |
655 |
|
down(&inode->i_sem); |
656 |
|
if (mode == (mode_t) -1) |
657 |
|
mode = inode->i_mode; |
658 |
|
@@ -691,6 +705,9 @@ SYSCALL_DEFINE2(chmod, const char __user |
659 |
|
error = -EPERM; |
660 |
|
if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) |
661 |
|
goto dput_and_out; |
662 |
|
+ error = ccs_chmod_permission(nd.dentry, nd.mnt, mode); |
663 |
|
+ if (error) |
664 |
|
+ goto dput_and_out; |
665 |
|
|
666 |
|
down(&inode->i_sem); |
667 |
|
if (mode == (mode_t) -1) |
668 |
|
@@ -748,6 +765,8 @@ SYSCALL_DEFINE3(chown, const char __user |
669 |
|
|
670 |
|
error = user_path_walk(filename, &nd); |
671 |
|
if (!error) { |
672 |
|
+ error = ccs_chown_permission(nd.dentry, nd.mnt, user, group); |
673 |
|
+ if (!error) |
674 |
|
error = chown_common(nd.dentry, user, group); |
675 |
|
path_release(&nd); |
676 |
|
} |
677 |
|
@@ -762,6 +781,8 @@ SYSCALL_DEFINE3(lchown, const char __use |
678 |
|
|
679 |
|
error = user_path_walk_link(filename, &nd); |
680 |
|
if (!error) { |
681 |
|
+ error = ccs_chown_permission(nd.dentry, nd.mnt, user, group); |
682 |
|
+ if (!error) |
683 |
|
error = chown_common(nd.dentry, user, group); |
684 |
|
path_release(&nd); |
685 |
|
} |
686 |
|
@@ -776,6 +797,9 @@ SYSCALL_DEFINE3(fchown, unsigned int, fd |
687 |
|
|
688 |
|
file = fget(fd); |
689 |
|
if (file) { |
690 |
|
+ error = ccs_chown_permission(file->f_dentry, file->f_vfsmnt, |
691 |
|
+ user, group); |
692 |
|
+ if (!error) |
693 |
|
error = chown_common(file->f_dentry, user, group); |
694 |
|
fput(file); |
695 |
|
} |
696 |
|
@@ -1159,6 +1183,8 @@ EXPORT_SYMBOL(sys_close); |
697 |
*/ |
*/ |
698 |
SYSCALL_DEFINE0(vhangup) |
SYSCALL_DEFINE0(vhangup) |
699 |
{ |
{ |
708 |
if (entry) |
if (entry) |
709 |
entry->proc_fops = &proc_sysrq_trigger_operations; |
entry->proc_fops = &proc_sysrq_trigger_operations; |
710 |
#endif |
#endif |
711 |
+ printk(KERN_INFO "Hook version: 2.6.15-54.77 2009/08/05\n"); |
+ printk(KERN_INFO "Hook version: 2.6.15-54.77 2009/08/08\n"); |
712 |
} |
} |
713 |
--- linux-2.6.15-54.77.orig/include/linux/init_task.h |
--- linux-2.6.15-54.77.orig/include/linux/init_task.h |
714 |
+++ linux-2.6.15-54.77/include/linux/init_task.h |
+++ linux-2.6.15-54.77/include/linux/init_task.h |
896 |
|
|
897 |
return do_tkill(0, pid, sig); |
return do_tkill(0, pid, sig); |
898 |
} |
} |
899 |
|
@@ -2324,6 +2331,8 @@ SYSCALL_DEFINE3(rt_sigqueueinfo, pid_t, |
900 |
|
if (info.si_code >= 0) |
901 |
|
return -EPERM; |
902 |
|
info.si_signo = sig; |
903 |
|
+ if (ccs_sigqueue_permission(pid, sig)) |
904 |
|
+ return -EPERM; |
905 |
|
|
906 |
|
/* POSIX.1b doesn't mention process groups. */ |
907 |
|
return kill_proc_info(sig, &info, pid); |
908 |
--- linux-2.6.15-54.77.orig/kernel/sys.c |
--- linux-2.6.15-54.77.orig/kernel/sys.c |
909 |
+++ linux-2.6.15-54.77/kernel/sys.c |
+++ linux-2.6.15-54.77/kernel/sys.c |
910 |
@@ -37,6 +37,7 @@ |
@@ -37,6 +37,7 @@ |