diff options
| author | David Greenman <dg@FreeBSD.org> | 1996-05-30 01:24:41 +0000 |
|---|---|---|
| committer | David Greenman <dg@FreeBSD.org> | 1996-05-30 01:24:41 +0000 |
| commit | ede96f76f2eed7f360fdebbcad0db1dcc05b3b82 (patch) | |
| tree | 92f1e8bd70ee53ac4bed5a2c966c93f2f07fe964 | |
| parent | 5c6b0b391751cf944e107a5ddab480f5b3d82f51 (diff) | |
Notes
| -rw-r--r-- | sys/kern/kern_prot.c | 4 | ||||
| -rw-r--r-- | sys/kern/kern_sysctl.c | 18 |
2 files changed, 12 insertions, 10 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index e783abec5a5c..1c87d645306f 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_prot.c 8.6 (Berkeley) 1/21/94 - * $Id: kern_prot.c,v 1.11.4.1 1995/08/08 04:07:22 ache Exp $ + * $Id: kern_prot.c,v 1.11.4.2 1995/11/19 01:52:43 davidg Exp $ */ /* @@ -229,7 +229,7 @@ setpgid(curp, uap, retval) if (uap->pid != 0 && uap->pid != curp->p_pid) { if ((targp = pfind(uap->pid)) == 0 || !inferior(targp)) return (ESRCH); - if (targp->p_session != curp->p_session) + if (targp->p_pgrp == NULL || targp->p_session != curp->p_session) return (EPERM); if (targp->p_flag & P_EXEC) return (EACCES); diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c index 49db46e2a1b6..e0b93423aab3 100644 --- a/sys/kern/kern_sysctl.c +++ b/sys/kern/kern_sysctl.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)kern_sysctl.c 8.4 (Berkeley) 4/14/94 - * $Id: kern_sysctl.c,v 1.25.4.2 1995/08/20 03:12:38 davidg Exp $ + * $Id: kern_sysctl.c,v 1.25.4.3 1996/02/22 19:22:30 peter Exp $ */ /* @@ -748,12 +748,18 @@ fill_eproc(p, ep) if (p->p_pptr) ep->e_ppid = p->p_pptr->p_pid; if (p->p_pgrp) { - ep->e_sess = p->p_pgrp->pg_session; ep->e_pgid = p->p_pgrp->pg_id; ep->e_jobc = p->p_pgrp->pg_jobc; + ep->e_sess = p->p_pgrp->pg_session; + + if (ep->e_sess) { + bcopy(ep->e_sess->s_login, ep->e_login, sizeof(ep->e_login)); + if (ep->e_sess->s_ttyvp) + ep->e_flag = EPROC_CTTY; + if (p->p_session && SESS_LEADER(p)) + ep->e_flag |= EPROC_SLEADER; + } } - if (ep->e_sess) - bcopy(ep->e_sess->s_login, ep->e_login, sizeof(ep->e_login)); if ((p->p_flag & P_CONTROLT) && (ep->e_sess != NULL) && ((tp = ep->e_sess->s_ttyp) != NULL)) { @@ -762,10 +768,6 @@ fill_eproc(p, ep) ep->e_tsess = tp->t_session; } else ep->e_tdev = NODEV; - if (ep->e_sess && ep->e_sess->s_ttyvp) - ep->e_flag = EPROC_CTTY; - if (SESS_LEADER(p)) - ep->e_flag |= EPROC_SLEADER; if (p->p_wmesg) { strncpy(ep->e_wmesg, p->p_wmesg, WMESGLEN); ep->e_wmesg[WMESGLEN] = 0; |
