Index: lib/libc/sys/kill.2 =================================================================== --- lib/libc/sys/kill.2 +++ lib/libc/sys/kill.2 @@ -28,7 +28,7 @@ .\" @(#)kill.2 8.3 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd December 1, 2017 +.Dd December 1, 2019 .Dt KILL 2 .Os .Sh NAME @@ -134,7 +134,7 @@ .It Bq Er EPERM The sending process does not have permission to send .Va sig -to the receiving process. +to any receiving process. .El .Sh SEE ALSO .Xr getpgrp 2 , Index: sys/kern/kern_sig.c =================================================================== --- sys/kern/kern_sig.c +++ sys/kern/kern_sig.c @@ -1688,10 +1688,11 @@ { struct proc *p; struct pgrp *pgrp; - int err; - int ret; + int err, ret; + bool sent_one; ret = ESRCH; + sent_one = false; if (all) { /* * broadcast @@ -1708,8 +1709,8 @@ if (sig) pksignal(p, sig, ksi); ret = err; - } - else if (ret == ESRCH) + sent_one = true; + } else if (ret == ESRCH) ret = err; PROC_UNLOCK(p); } @@ -1742,13 +1743,15 @@ if (sig) pksignal(p, sig, ksi); ret = err; - } - else if (ret == ESRCH) + sent_one = true; + } else if (ret == ESRCH) ret = err; PROC_UNLOCK(p); } PGRP_UNLOCK(pgrp); } + if (ret == EPERM && sent_one) + ret = 0; return (ret); }