svn commit: r270993 - head/sys/kern
Konstantin Belousov
kostikbel at gmail.com
Wed Sep 3 07:16:37 UTC 2014
On Wed, Sep 03, 2014 at 06:25:35AM +0000, Mateusz Guzik wrote:
> Author: mjg
> Date: Wed Sep 3 06:25:34 2014
> New Revision: 270993
> URL: http://svnweb.freebsd.org/changeset/base/270993
>
> Log:
> Fix up proc_realparent to always return correct process.
>
> Prior to the change it would always return initproc for non-traced processes.
>
> This fixes ps apparently always returning 1 as ppid.
>
> Pointy hat: mjg
No, this is my bug. Thank you for fixing it. It is a consequence of
the last minute 'safety' change I did.
> Reported by: many
> MFC after: 1 week
I suggest to merge in 3 days.
>
> Modified:
> head/sys/kern/kern_exit.c
>
> Modified: head/sys/kern/kern_exit.c
> ==============================================================================
> --- head/sys/kern/kern_exit.c Wed Sep 3 05:14:50 2014 (r270992)
> +++ head/sys/kern/kern_exit.c Wed Sep 3 06:25:34 2014 (r270993)
> @@ -104,8 +104,12 @@ proc_realparent(struct proc *child)
>
> sx_assert(&proctree_lock, SX_LOCKED);
> if ((child->p_treeflag & P_TREE_ORPHANED) == 0) {
> - return (child->p_pptr->p_pid == child->p_oppid ?
> - child->p_pptr : initproc);
> + if (child->p_oppid == 0 ||
> + child->p_pptr->p_pid == child->p_oppid)
> + parent = child->p_pptr;
> + else
> + parent = initproc;
> + return (parent);
> }
> for (p = child; (p->p_treeflag & P_TREE_FIRST_ORPHAN) == 0;) {
> /* Cannot use LIST_PREV(), since the list head is not known. */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20140903/0e007fab/attachment.sig>
More information about the svn-src-all
mailing list