diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-07-03 13:49:45 -0400 |
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-07-03 13:49:45 -0400 |
| commit | 026477c1141b67e98e3bd8bdedb7d4b88a3ecd09 (patch) | |
| tree | 2624a44924c625c367f3cebf937853b9da2de282 /kernel/signal.c | |
| parent | 9f2fa466383ce100b90fe52cb4489d7a26bf72a9 (diff) | |
| parent | 29454dde27d8e340bb1987bad9aa504af7081eba (diff) | |
Merge branch 'master' of /home/trondmy/kernel/linux-2.6/
Diffstat (limited to 'kernel/signal.c')
| -rw-r--r-- | kernel/signal.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 52adf53929f6..7fe874d12fae 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | * to allow signals to be sent reliably. | 10 | * to allow signals to be sent reliably. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <linux/config.h> | ||
| 14 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
| 15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
| 16 | #include <linux/smp_lock.h> | 15 | #include <linux/smp_lock.h> |
| @@ -584,7 +583,7 @@ static int check_kill_permission(int sig, struct siginfo *info, | |||
| 584 | && !capable(CAP_KILL)) | 583 | && !capable(CAP_KILL)) |
| 585 | return error; | 584 | return error; |
| 586 | 585 | ||
| 587 | error = security_task_kill(t, info, sig); | 586 | error = security_task_kill(t, info, sig, 0); |
| 588 | if (!error) | 587 | if (!error) |
| 589 | audit_signal_info(sig, t); /* Let audit system see the signal */ | 588 | audit_signal_info(sig, t); /* Let audit system see the signal */ |
| 590 | return error; | 589 | return error; |
| @@ -1107,7 +1106,7 @@ kill_proc_info(int sig, struct siginfo *info, pid_t pid) | |||
| 1107 | 1106 | ||
| 1108 | /* like kill_proc_info(), but doesn't use uid/euid of "current" */ | 1107 | /* like kill_proc_info(), but doesn't use uid/euid of "current" */ |
| 1109 | int kill_proc_info_as_uid(int sig, struct siginfo *info, pid_t pid, | 1108 | int kill_proc_info_as_uid(int sig, struct siginfo *info, pid_t pid, |
| 1110 | uid_t uid, uid_t euid) | 1109 | uid_t uid, uid_t euid, u32 secid) |
| 1111 | { | 1110 | { |
| 1112 | int ret = -EINVAL; | 1111 | int ret = -EINVAL; |
| 1113 | struct task_struct *p; | 1112 | struct task_struct *p; |
| @@ -1127,6 +1126,9 @@ int kill_proc_info_as_uid(int sig, struct siginfo *info, pid_t pid, | |||
| 1127 | ret = -EPERM; | 1126 | ret = -EPERM; |
| 1128 | goto out_unlock; | 1127 | goto out_unlock; |
| 1129 | } | 1128 | } |
| 1129 | ret = security_task_kill(p, info, sig, secid); | ||
| 1130 | if (ret) | ||
| 1131 | goto out_unlock; | ||
| 1130 | if (sig && p->sighand) { | 1132 | if (sig && p->sighand) { |
| 1131 | unsigned long flags; | 1133 | unsigned long flags; |
| 1132 | spin_lock_irqsave(&p->sighand->siglock, flags); | 1134 | spin_lock_irqsave(&p->sighand->siglock, flags); |
