From 054016e18b2e08c194346e08571394ec2308c3a9 Mon Sep 17 00:00:00 2001 From: Bill Joy Date: Sun, 13 Jul 1980 01:14:41 -0800 Subject: [PATCH] limit code SCCS-vsn: sys/kern/kern_clock.c 3.14 SCCS-vsn: sys/kern/kern_proc.c 3.16 --- usr/src/sys/kern/kern_clock.c | 8 +++++--- usr/src/sys/kern/kern_proc.c | 7 ++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/usr/src/sys/kern/kern_clock.c b/usr/src/sys/kern/kern_clock.c index 115eb9b531..4535d2f36c 100644 --- a/usr/src/sys/kern/kern_clock.c +++ b/usr/src/sys/kern/kern_clock.c @@ -1,4 +1,4 @@ -/* %H% 3.13 kern_clock.c */ +/* %H% 3.14 kern_clock.c */ #include "../h/param.h" #include "../h/systm.h" @@ -227,16 +227,18 @@ out: */ if (bclnlist != NULL) wakeup((caddr_t)&proc[2]); -#ifdef ERNIE if (USERMODE(ps)) { pp = u.u_procp; +#ifdef ERNIE if (pp->p_uid) if (pp->p_nice == NZERO && u.u_vm.vm_utime > 600 * HZ) pp->p_nice = NZERO+4; (void) setpri(pp); pp->p_pri = pp->p_usrpri; - } #endif + if (u.u_vm.vm_utime+u.u_vm.vm_stime > u.u_limit[LIM_CPU]) + psignal(pp, SIGXCPU); + } } if (!BASEPRI(ps)) unhang(); diff --git a/usr/src/sys/kern/kern_proc.c b/usr/src/sys/kern/kern_proc.c index 0b8fde935b..1b752ace76 100644 --- a/usr/src/sys/kern/kern_proc.c +++ b/usr/src/sys/kern/kern_proc.c @@ -1,4 +1,4 @@ -/* kern_proc.c 3.15 %G% */ +/* kern_proc.c 3.16 %G% */ #include "../h/param.h" #include "../h/systm.h" @@ -467,6 +467,7 @@ exit(rv) plock(u.u_rdir); iput(u.u_rdir); } + u.u_limit[LIM_FSIZE] = INFINITY; acct(); vrelpt(u.u_procp); vrelu(u.u_procp, 0); @@ -684,6 +685,10 @@ sbreak() if (n < 0) n = 0; d = clrnd(n - u.u_dsize); + if (u.u_dsize+d > u.u_limit[LIM_DATA]) { + u.u_error = ENOMEM; + return; + } if (chksize(u.u_tsize, u.u_dsize+d, u.u_ssize)) return; if (swpexpand(u.u_dsize+d, u.u_ssize, &u.u_dmap, &u.u_smap)==0) -- 2.20.1