aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavem <davem>2001-12-17 08:00:58 +0000
committerdavem <davem>2001-12-17 08:00:58 +0000
commitd666b218ee883108041703189c87969efe5e977d (patch)
treeeeee96ba5549599ce46eae9e28ba33b7c5cd00fb
parentc7ed952798088e7e6f8dfc6a8f741560332961c0 (diff)
downloadnetdev-vger-cvs-d666b218ee883108041703189c87969efe5e977d.tar.gz
Revert kill(-1) behavioral change in 2.5.1
-rw-r--r--kernel/signal.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index b6958912e..44acecd85 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -649,10 +649,8 @@ kill_proc_info(int sig, struct siginfo *info, pid_t pid)
/*
* kill_something_info() interprets pid in interesting ways just like kill(2).
*
- * POSIX (2001) specifies "If pid is -1, sig shall be sent to all processes
- * (excluding an unspecified set of system processes) for which the process
- * has permission to send that signal."
- * So, probably the process should also signal itself.
+ * POSIX specifies that kill(-1,sig) is unspecified, but what we have
+ * is probably wrong. Should make it like BSD or SYSV.
*/
static int kill_something_info(int sig, struct siginfo *info, int pid)
@@ -665,7 +663,7 @@ static int kill_something_info(int sig, struct siginfo *info, int pid)
read_lock(&tasklist_lock);
for_each_task(p) {
- if (p->pid > 1) {
+ if (p->pid > 1 && p != current) {
int err = send_sig_info(sig, info, p);
++count;
if (err != -EPERM)