summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2020-09-24 23:49:59 +0000
committerderaadt <deraadt@openbsd.org>2020-09-24 23:49:59 +0000
commit503c55ae0ee39466a9323fdb7f0637419761a375 (patch)
tree119b18ddf732327a31afc70ec4e02fe36970c632
parentan ugly white space (diff)
downloadwireguard-openbsd-503c55ae0ee39466a9323fdb7f0637419761a375.tar.xz
wireguard-openbsd-503c55ae0ee39466a9323fdb7f0637419761a375.zip
The sparc64 pagefault vectors are directly to specific functions, and
all 3 were missing refreshcreds() preceding calls to uvm_fault() ok kettenis
-rw-r--r--sys/arch/sparc64/sparc64/trap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c
index 360321ee896..1784b3ef81a 100644
--- a/sys/arch/sparc64/sparc64/trap.c
+++ b/sys/arch/sparc64/sparc64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.104 2020/09/24 17:54:30 deraadt Exp $ */
+/* $OpenBSD: trap.c,v 1.105 2020/09/24 23:49:59 deraadt Exp $ */
/* $NetBSD: trap.c,v 1.73 2001/08/09 01:03:01 eeh Exp $ */
/*
@@ -788,6 +788,7 @@ data_access_fault(struct trapframe64 *tf, unsigned type, vaddr_t pc,
}
} else {
p->p_md.md_tf = tf;
+ refreshcreds(p);
if (!uvm_map_inentry(p, &p->p_spinentry, PROC_STACK(p),
"[%s]%d/%d sp=%lx inside %lx-%lx: not MAP_STACK\n",
uvm_map_inentry_sp, p->p_vmspace->vm_map.sserial))
@@ -978,6 +979,7 @@ text_access_fault(struct trapframe64 *tf, unsigned type, vaddr_t pc,
/* NOTREACHED */
} else {
p->p_md.md_tf = tf;
+ refreshcreds(p);
if (!uvm_map_inentry(p, &p->p_spinentry, PROC_STACK(p),
"[%s]%d/%d sp=%lx inside %lx-%lx: not MAP_STACK\n",
uvm_map_inentry_sp, p->p_vmspace->vm_map.sserial))
@@ -1086,6 +1088,7 @@ text_access_error(struct trapframe64 *tf, unsigned type, vaddr_t pc,
/* NOTREACHED */
} else {
p->p_md.md_tf = tf;
+ refreshcreds(p);
if (!uvm_map_inentry(p, &p->p_spinentry, PROC_STACK(p),
"[%s]%d/%d sp=%lx inside %lx-%lx: not MAP_STACK\n",
uvm_map_inentry_sp, p->p_vmspace->vm_map.sserial))