summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authordavidn <davidn@FreeBSD.org>1997-01-21 16:37:01 +0000
committerdavidn <davidn@FreeBSD.org>1997-01-21 16:37:01 +0000
commitafa32c5ae84272935070680cd64b0c9e5524a948 (patch)
tree92f0a233c6ea515b1723188a2b684628ba7df2ed /sys/kern
parent07860c5307ad8652ad686cec1fc746bd12771bdb (diff)
downloadFreeBSD-src-afa32c5ae84272935070680cd64b0c9e5524a948.zip
FreeBSD-src-afa32c5ae84272935070680cd64b0c9e5524a948.tar.gz
Copy process resource settings before modifying.
Candidate for 2.2.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_exit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index ac1d952..82c1f8b 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -222,6 +222,11 @@ exit1(p, rv)
sp->s_leader = NULL;
}
fixjobc(p, p->p_pgrp, 0);
+ if (p->p_limit->p_refcnt > 1 &&
+ (p->p_limit->p_lflags & PL_SHAREMOD) == 0) {
+ p->p_limit->p_refcnt--;
+ p->p_limit = limcopy(p->p_limit);
+ }
p->p_rlimit[RLIMIT_FSIZE].rlim_cur = RLIM_INFINITY;
(void)acct_process(p);
#ifdef KTRACE
OpenPOWER on IntegriCloud