diff options
author | 2019-06-21 09:39:48 +0000 | |
---|---|---|
committer | 2019-06-21 09:39:48 +0000 | |
commit | edc99bcd885f4004d6cffdbe82f15aa2eb27ee9c (patch) | |
tree | 90a5c776fe52a9672304a33b0ce308c3c1f7763f /sys/kern/kern_exec.c | |
parent | Use timeout_add_msec(9) (diff) | |
download | wireguard-openbsd-edc99bcd885f4004d6cffdbe82f15aa2eb27ee9c.tar.xz wireguard-openbsd-edc99bcd885f4004d6cffdbe82f15aa2eb27ee9c.zip |
Make resource limit access MP-safe. So far, the copy-on-write sharing
of resource limit structs has been done between processes. By applying
copy-on-write also between threads, threads can read rlimits in
a nearly lock-free manner.
Inspired by code in DragonFly BSD and FreeBSD.
OK mpi@, agreement from jmatthew@ and anton@
Diffstat (limited to 'sys/kern/kern_exec.c')
-rw-r--r-- | sys/kern/kern_exec.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 3019366cb1c..301d847f1c8 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_exec.c,v 1.205 2019/06/01 14:11:17 mpi Exp $ */ +/* $OpenBSD: kern_exec.c,v 1.206 2019/06/21 09:39:48 visa Exp $ */ /* $NetBSD: kern_exec.c,v 1.75 1996/02/09 18:59:28 christos Exp $ */ /*- @@ -201,7 +201,7 @@ check_exec(struct proc *p, struct exec_package *epp) /* check limits */ if ((epp->ep_tsize > MAXTSIZ) || - (epp->ep_dsize > p->p_rlimit[RLIMIT_DATA].rlim_cur)) + (epp->ep_dsize > lim_cur(RLIMIT_DATA))) error = ENOMEM; if (!error) |