X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/2b4b57cde32cd59d62925e7cfa02dc478cde4624..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 8057815c6a..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.15 81/11/18 */ +/* 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; @@ -94,8 +94,8 @@ exece() u.u_segflg = 0; if (u.u_error) goto bad; - if (u.u_count > sizeof(u.u_exdata) - sizeof(u.u_exdata.Ux_A) - && u.u_exdata.ux_shell[0] != '#') { + if (u.u_count > sizeof(u.u_exdata) - sizeof(u.u_exdata.Ux_A) && + u.u_exdata.ux_shell[0] != '#') { u.u_error = ENOEXEC; goto bad; } @@ -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 @@ -424,7 +425,7 @@ setregs() u.u_ar0[PC] = u.u_exdata.ux_entloc + 2; /* skip over entry mask */ for (i=0; ip_stat = SZOMB; noproc = 1; @@ -557,13 +559,12 @@ done: } /* * Protect this process from future - * tty signals, clear TSTP/TTIN/TTOU if pending, - * and set SDETACH bit on procs. + * tty signals, clear TSTP/TTIN/TTOU if pending. */ (void) spgrp(q, -1); } - wakeup((caddr_t)p->p_pptr); psignal(p->p_pptr, SIGCHLD); + wakeup((caddr_t)p->p_pptr); swtch(); }