X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/8f4851aa9d79ecf7e64396afee94bd22bb441e78..4e6e38871c68cf8ddfa65c3f6a0d0b2f3a1b2caf:/usr/src/sys/kern/kern_proc.c diff --git a/usr/src/sys/kern/kern_proc.c b/usr/src/sys/kern/kern_proc.c index 7947d21db0..53cab4f7c7 100644 --- a/usr/src/sys/kern/kern_proc.c +++ b/usr/src/sys/kern/kern_proc.c @@ -1,4 +1,4 @@ -/* kern_proc.c 4.20 82/01/25 */ +/* kern_proc.c 4.25 82/04/02 */ #include "../h/param.h" #include "../h/systm.h" @@ -49,7 +49,7 @@ exece() char cfname[DIRSIZ]; char cfarg[SHSIZE]; - if ((ip = namei(uchar, 0)) == NULL) + if ((ip = namei(uchar, 0, 1)) == NULL) return; bno = 0; bp = 0; @@ -154,7 +154,7 @@ exece() bcopy((caddr_t)u.u_dbuf, (caddr_t)cfname, DIRSIZ); indir = 1; iput(ip); - ip = namei(schar, 0); + ip = namei(schar, 0, 1); if (ip == NULL) return; goto again; @@ -372,6 +372,7 @@ register struct inode *ip; u.u_uid = uid; u.u_procp->p_uid = uid; u.u_gid = gid; + u.u_grps[gid/(sizeof(int)*8)] |= 1 << (gid%(sizeof(int)*8)); } else psignal(u.u_procp, SIGTRAP); u.u_tsize = ts; @@ -390,7 +391,7 @@ setregs() register i; long sigmask; - for (rp = &u.u_signal[0], sigmask = 1L; rp < &u.u_signal[NSIG]; + for (rp = &u.u_signal[1], sigmask = 1L; rp < &u.u_signal[NSIG]; sigmask <<= 1, rp++) { switch (*rp) { @@ -408,7 +409,7 @@ setregs() if ((int)*rp & 1) u.u_procp->p_siga0 |= sigmask; else - u.u_procp->p_siga1 &= ~sigmask; + u.u_procp->p_siga0 &= ~sigmask; if ((int)*rp & 2) u.u_procp->p_siga1 |= sigmask; else @@ -514,7 +515,7 @@ exit(rv) acct(); vrelpt(u.u_procp); vrelu(u.u_procp, 0); - (void) slpimp(); /* hack for mem alloc race XXX */ + (void) spl5(); /* hack for mem alloc race XXX */ multprog--; p->p_stat = SZOMB; noproc = 1; @@ -562,8 +563,8 @@ done: */ (void) spgrp(q, -1); } - wakeup((caddr_t)p->p_pptr); psignal(p->p_pptr, SIGCHLD); + wakeup((caddr_t)p->p_pptr); swtch(); }