Date: Mon, 29 Oct 2012 06:32:42 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Eitan Adler <eadler@freebsd.org> Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-9@freebsd.org Subject: Re: svn commit: r242283 - stable/9/sys/kern Message-ID: <20121029043242.GH73505@kib.kiev.ua> In-Reply-To: <201210290352.q9T3qJa3070064@svn.freebsd.org> References: <201210290352.q9T3qJa3070064@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] 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_ [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlCOBukACgkQC3+MBN1Mb4iDgwCeO8ml+F6PXv1qbKW2KRR5ZYYE QrcAoPfXlJjbRSXvwG/qlHMjJ+UqzY5Y =3osD -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121029043242.GH73505>
