diff options
author | davidn <davidn@FreeBSD.org> | 1997-01-21 16:37:01 +0000 |
---|---|---|
committer | davidn <davidn@FreeBSD.org> | 1997-01-21 16:37:01 +0000 |
commit | afa32c5ae84272935070680cd64b0c9e5524a948 (patch) | |
tree | 92f0a233c6ea515b1723188a2b684628ba7df2ed /sys/kern/kern_exit.c | |
parent | 07860c5307ad8652ad686cec1fc746bd12771bdb (diff) | |
download | FreeBSD-src-afa32c5ae84272935070680cd64b0c9e5524a948.zip FreeBSD-src-afa32c5ae84272935070680cd64b0c9e5524a948.tar.gz |
Copy process resource settings before modifying.
Candidate for 2.2.
Diffstat (limited to 'sys/kern/kern_exit.c')
-rw-r--r-- | sys/kern/kern_exit.c | 5 |
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 |