summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2019-06-17 19:04:40 +0000
committerderaadt <deraadt@openbsd.org>2019-06-17 19:04:40 +0000
commit7130b271d7095aab71e2971f998c08884e2de46f (patch)
tree5290c95bd5f124cc6cec44bd843038e0d11c24da
parentmention environment resetting here as well. ok millert (diff)
downloadwireguard-openbsd-7130b271d7095aab71e2971f998c08884e2de46f.tar.xz
wireguard-openbsd-7130b271d7095aab71e2971f998c08884e2de46f.zip
add code to check stack pointer is within MAP_STACK
from miod
-rw-r--r--sys/arch/m88k/m88k/trap.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/arch/m88k/m88k/trap.c b/sys/arch/m88k/m88k/trap.c
index 032cab05327..db3575b15fa 100644
--- a/sys/arch/m88k/m88k/trap.c
+++ b/sys/arch/m88k/m88k/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.107 2017/09/08 05:36:52 deraadt Exp $ */
+/* $OpenBSD: trap.c,v 1.108 2019/06/17 19:04:40 deraadt Exp $ */
/*
* Copyright (c) 2004, Miodrag Vallat.
* Copyright (c) 1998 Steve Murphree, Jr.
@@ -239,6 +239,9 @@ m88100_trap(u_int type, struct trapframe *frame)
type += T_USER;
p->p_md.md_tf = frame; /* for ptrace/signals */
refreshcreds(p);
+ if (!uvm_map_inentry(p, &p->p_spinentry, PROC_STACK(p), "sp",
+ uvm_map_inentry_sp, p->p_vmspace->vm_map.sserial))
+ return;
}
fault_type = SI_NOINFO;
fault_code = 0;
@@ -679,6 +682,9 @@ m88110_trap(u_int type, struct trapframe *frame)
type += T_USER;
p->p_md.md_tf = frame; /* for ptrace/signals */
refreshcreds(p);
+ if (!uvm_map_inentry(p, &p->p_spinentry, PROC_STACK(p), "sp",
+ uvm_map_inentry_sp, p->p_vmspace->vm_map.sserial))
+ return;
}
if (sig != 0)