summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Jakub Dawidek <pjd@FreeBSD.org>2004-07-29 20:38:19 +0000
committerPawel Jakub Dawidek <pjd@FreeBSD.org>2004-07-29 20:38:19 +0000
commit0b011ea3dae01d6dc1dd85a1b835c4965deeae82 (patch)
tree7a5750e32d938d5832f5aa78dbb523dd8cf56a25
parentcebabef04f95781e53c6de1d2ce0f2e0e41d0003 (diff)
Notes
-rw-r--r--sys/kern/kern_sig.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index f82b838135fe..09416075b63d 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -1383,8 +1383,17 @@ kill(td, uap)
if (uap->pid > 0) {
/* kill single process */
- if ((p = pfind(uap->pid)) == NULL)
+ if ((p = pfind(uap->pid)) == NULL) {
+ if ((p = zpfind(uap->pid)) != NULL) {
+ /*
+ * IEEE Std 1003.1-2001: return success
+ * when killing a zombie.
+ */
+ PROC_UNLOCK(p);
+ return (0);
+ }
return (ESRCH);
+ }
error = p_cansignal(td, p, uap->signum);
if (error == 0 && uap->signum)
psignal(p, uap->signum);