svn commit: r242283 - stable/9/sys/kern
Konstantin Belousov
kostikbel at gmail.com
Mon Oct 29 04:32:47 UTC 2012
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_
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-stable-9/attachments/20121029/13b92285/attachment.sig>
More information about the svn-src-stable-9
mailing list