44 |
kernel/kmod.c | 3 ++ |
kernel/kmod.c | 3 ++ |
45 |
kernel/module.c | 7 ++++-- |
kernel/module.c | 7 ++++-- |
46 |
kernel/sched.c | 3 ++ |
kernel/sched.c | 3 ++ |
47 |
kernel/signal.c | 14 +++++++++++++ |
kernel/signal.c | 7 ++++++ |
48 |
kernel/sys.c | 11 ++++++++++ |
kernel/sys.c | 11 ++++++++++ |
49 |
kernel/sysctl.c | 13 +++++++++++- |
kernel/sysctl.c | 13 +++++++++++- |
50 |
kernel/time.c | 7 ++++++ |
kernel/time.c | 7 ++++++ |
56 |
net/ipv6/udp.c | 9 ++++++++ |
net/ipv6/udp.c | 9 ++++++++ |
57 |
net/socket.c | 26 ++++++++++++++++++++++--- |
net/socket.c | 26 ++++++++++++++++++++++--- |
58 |
net/unix/af_unix.c | 4 +++ |
net/unix/af_unix.c | 4 +++ |
59 |
54 files changed, 324 insertions(+), 11 deletions(-) |
54 files changed, 317 insertions(+), 11 deletions(-) |
60 |
|
|
61 |
--- linux-2.6.8-17sarge1.orig/arch/alpha/kernel/ptrace.c |
--- linux-2.6.8-17sarge1.orig/arch/alpha/kernel/ptrace.c |
62 |
+++ linux-2.6.8-17sarge1/arch/alpha/kernel/ptrace.c |
+++ linux-2.6.8-17sarge1/arch/alpha/kernel/ptrace.c |
989 |
entry->proc_fops = &ppc_htab_operations; |
entry->proc_fops = &ppc_htab_operations; |
990 |
} |
} |
991 |
#endif |
#endif |
992 |
+ printk(KERN_INFO "Hook version: 2.6.8-17sarge1 2009/07/23\n"); |
+ printk(KERN_INFO "Hook version: 2.6.8-17sarge1 2009/08/05\n"); |
993 |
} |
} |
994 |
--- linux-2.6.8-17sarge1.orig/include/linux/init_task.h |
--- linux-2.6.8-17sarge1.orig/include/linux/init_task.h |
995 |
+++ linux-2.6.8-17sarge1/include/linux/init_task.h |
+++ linux-2.6.8-17sarge1/include/linux/init_task.h |
1093 |
|
|
1094 |
/* |
/* |
1095 |
* SLAB caches for signal bits. |
* SLAB caches for signal bits. |
1096 |
@@ -2209,6 +2210,10 @@ asmlinkage long |
@@ -2209,6 +2210,8 @@ asmlinkage long |
1097 |
sys_kill(int pid, int sig) |
sys_kill(int pid, int sig) |
1098 |
{ |
{ |
1099 |
struct siginfo info; |
struct siginfo info; |
1100 |
+ if (sig && !ccs_capable(CCS_SYS_KILL)) |
+ if (ccs_kill_permission(pid, sig)) |
|
+ return -EPERM; |
|
|
+ if (sig && ccs_check_signal_acl(sig, pid)) |
|
1101 |
+ return -EPERM; |
+ return -EPERM; |
1102 |
|
|
1103 |
info.si_signo = sig; |
info.si_signo = sig; |
1104 |
info.si_errno = 0; |
info.si_errno = 0; |
1105 |
@@ -2239,6 +2244,11 @@ asmlinkage long sys_tgkill(int tgid, int |
@@ -2238,6 +2241,8 @@ asmlinkage long sys_tgkill(int tgid, int |
1106 |
|
/* This is only valid for single tasks */ |
1107 |
if (pid <= 0 || tgid <= 0) |
if (pid <= 0 || tgid <= 0) |
1108 |
return -EINVAL; |
return -EINVAL; |
1109 |
|
+ if (ccs_tgkill_permission(tgid, pid, sig)) |
|
+ if (sig && !ccs_capable(CCS_SYS_KILL)) |
|
1110 |
+ return -EPERM; |
+ return -EPERM; |
1111 |
+ if (sig && ccs_check_signal_acl(sig, pid)) |
|
|
+ return -EPERM; |
|
|
+ |
|
1112 |
info.si_signo = sig; |
info.si_signo = sig; |
1113 |
info.si_errno = 0; |
info.si_errno = 0; |
1114 |
info.si_code = SI_TKILL; |
@@ -2278,6 +2283,8 @@ sys_tkill(int pid, int sig) |
1115 |
@@ -2279,6 +2289,10 @@ sys_tkill(int pid, int sig) |
/* This is only valid for single tasks */ |
1116 |
if (pid <= 0) |
if (pid <= 0) |
1117 |
return -EINVAL; |
return -EINVAL; |
1118 |
|
+ if (ccs_tkill_permission(pid, sig)) |
|
+ if (sig && !ccs_capable(CCS_SYS_KILL)) |
|
|
+ return -EPERM; |
|
|
+ if (sig && ccs_check_signal_acl(sig, pid)) |
|
1119 |
+ return -EPERM; |
+ return -EPERM; |
1120 |
|
|
1121 |
info.si_signo = sig; |
info.si_signo = sig; |
1122 |
info.si_errno = 0; |
info.si_errno = 0; |
|
info.si_code = SI_TKILL; |
|
1123 |
--- linux-2.6.8-17sarge1.orig/kernel/sys.c |
--- linux-2.6.8-17sarge1.orig/kernel/sys.c |
1124 |
+++ linux-2.6.8-17sarge1/kernel/sys.c |
+++ linux-2.6.8-17sarge1/kernel/sys.c |
1125 |
@@ -28,6 +28,7 @@ |
@@ -28,6 +28,7 @@ |