On Mon, Oct 29, 2012 at 03:52:19AM +0000, Eitan Adler wrote: > Author: eadler > Date: Mon Oct 29 03:52:18 2012 > New Revision: 242283 > URL: http://svn.freebsd.org/changeset/base/242283 > > Log: > MFC r241855,r241859: > Update the kill(2) and killpg(2) man pages to the modern permission > checks. Also indicate killpg(2) is POSIX compliant. > > Correct the killpg(2) return values: > > Return EPERM if processes were found but they > were unable to be signaled. > > Return the first error from p_cansignal if no signal was successful. > > Discussed with: jilles > Approved by: cperciva (implicit) > > Modified: > stable/9/sys/kern/kern_sig.c > Directory Properties: > stable/9/sys/ (props changed) According to svn mail, r241855 was not merged.
> > Modified: stable/9/sys/kern/kern_sig.c > ============================================================================== > --- stable/9/sys/kern/kern_sig.c Mon Oct 29 03:52:18 2012 > (r242282) > +++ stable/9/sys/kern/kern_sig.c Mon Oct 29 03:52:18 2012 > (r242283) > @@ -1599,8 +1599,10 @@ killpg1(struct thread *td, int sig, int > { > struct proc *p; > struct pgrp *pgrp; > - int nfound = 0; > + int err; > + int ret; > > + ret = ESRCH; > if (all) { > /* > * broadcast > @@ -1613,11 +1615,14 @@ killpg1(struct thread *td, int sig, int > PROC_UNLOCK(p); > continue; > } > - if (p_cansignal(td, p, sig) == 0) { > - nfound++; > + err = p_cansignal(td, p, sig); > + if (err == 0) { > if (sig) > pksignal(p, sig, ksi); > + ret = err; > } > + else if (ret == ESRCH) > + ret = err; > PROC_UNLOCK(p); > } > sx_sunlock(&allproc_lock); > @@ -1644,16 +1649,19 @@ killpg1(struct thread *td, int sig, int > PROC_UNLOCK(p); > continue; > } > - if (p_cansignal(td, p, sig) == 0) { > - nfound++; > + err = p_cansignal(td, p, sig); > + if (err == 0) { > if (sig) > pksignal(p, sig, ksi); > + ret = err; > } > + else if (ret == ESRCH) > + ret = err; > PROC_UNLOCK(p); > } > PGRP_UNLOCK(pgrp); > } > - return (nfound ? 0 : ESRCH); > + return (ret); > } > > #ifndef _SYS_SYSPROTO_H_
pgpfRCVH2nMc2.pgp
Description: PGP signature