summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_resource.c
diff options
context:
space:
mode:
authorvisa <visa@openbsd.org>2019-06-24 12:49:03 +0000
committervisa <visa@openbsd.org>2019-06-24 12:49:03 +0000
commit5699f997603f91289e6ed86fd4bdbb59e4513ec3 (patch)
treefc18c56403c4fc762960e8ac96f8d7040b7e011b /sys/kern/kern_resource.c
parentDo not use a warning flag that base gcc does not understand, (diff)
downloadwireguard-openbsd-5699f997603f91289e6ed86fd4bdbb59e4513ec3.tar.xz
wireguard-openbsd-5699f997603f91289e6ed86fd4bdbb59e4513ec3.zip
Guard uvm_map_protect() with kernel lock to prepare dosetrlimit()
for unlocking. OK semarie@ mpi@ deraadt@ anton@
Diffstat (limited to 'sys/kern/kern_resource.c')
-rw-r--r--sys/kern/kern_resource.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/kern_resource.c b/sys/kern/kern_resource.c
index 050326ab6fd..191abef1c35 100644
--- a/sys/kern/kern_resource.c
+++ b/sys/kern/kern_resource.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_resource.c,v 1.65 2019/06/21 09:39:48 visa Exp $ */
+/* $OpenBSD: kern_resource.c,v 1.66 2019/06/24 12:49:03 visa Exp $ */
/* $NetBSD: kern_resource.c,v 1.38 1996/10/23 07:19:38 matthias Exp $ */
/*-
@@ -326,8 +326,10 @@ dosetrlimit(struct proc *p, u_int which, struct rlimit *limp)
}
addr = trunc_page(addr);
size = round_page(size);
+ KERNEL_LOCK();
(void) uvm_map_protect(&vm->vm_map,
addr, addr+size, prot, FALSE);
+ KERNEL_UNLOCK();
}
}