summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2015-01-15 16:31:19 +0000
committerkettenis <kettenis@openbsd.org>2015-01-15 16:31:19 +0000
commit12ccc845a91305ba5e4498d3da9b4213a5080821 (patch)
tree21842a58e5f5715ee4f54da0455e653b7fda5d80
parentDon't include i82489 headers in cpu.h (diff)
downloadwireguard-openbsd-12ccc845a91305ba5e4498d3da9b4213a5080821.tar.xz
wireguard-openbsd-12ccc845a91305ba5e4498d3da9b4213a5080821.zip
Map the sigcode page with MAP_INHERIT_COPY to make sure it isn't shared ater
a fork. ok deraadt@
-rw-r--r--sys/kern/kern_exec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index cfddf50f4ac..2f92dc9f7a1 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_exec.c,v 1.154 2015/01/15 10:04:26 kettenis Exp $ */
+/* $OpenBSD: kern_exec.c,v 1.155 2015/01/15 16:31:19 kettenis Exp $ */
/* $NetBSD: kern_exec.c,v 1.75 1996/02/09 18:59:28 christos Exp $ */
/*-
@@ -848,7 +848,7 @@ exec_sigcode_map(struct process *pr, struct emul *e)
uao_reference(e->e_sigobject);
if (uvm_map(&pr->ps_vmspace->vm_map, &pr->ps_sigcode, round_page(sz),
e->e_sigobject, 0, 0, UVM_MAPFLAG(PROT_READ | PROT_EXEC,
- PROT_READ | PROT_WRITE | PROT_EXEC, MAP_INHERIT_SHARE,
+ PROT_READ | PROT_WRITE | PROT_EXEC, MAP_INHERIT_COPY,
MADV_RANDOM, UVM_FLAG_COPYONW))) {
uao_detach(e->e_sigobject);
return (ENOMEM);