diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2019-09-06 12:22:02 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2019-09-06 12:22:02 +0000 |
commit | f3b5414816d1323fb952a52969123786b389a6c0 (patch) | |
tree | 94a58359d3b32ff709692b3416cc02854b17e8fa /sys/arch/alpha | |
parent | 7cc0269c59f408ccac1b47fb15af749a306bc71b (diff) |
If uvm_map_inentry returns false then a signal has been delivered, and
userret() must be called on trap() exit to deliver it, rather than
repeating the same cause infinitely. discovered by George Koehler
ok kettenis bluhm visa
Diffstat (limited to 'sys/arch/alpha')
-rw-r--r-- | sys/arch/alpha/alpha/trap.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/alpha/alpha/trap.c b/sys/arch/alpha/alpha/trap.c index 5f4f5b22f62..252e2fdd69d 100644 --- a/sys/arch/alpha/alpha/trap.c +++ b/sys/arch/alpha/alpha/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.87 2019/07/09 23:48:06 deraadt Exp $ */ +/* $OpenBSD: trap.c,v 1.88 2019/09/06 12:22:01 deraadt Exp $ */ /* $NetBSD: trap.c,v 1.52 2000/05/24 16:48:33 thorpej Exp $ */ /*- @@ -247,7 +247,7 @@ trap(a0, a1, a2, entry, framep) 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)) - return; + goto out; } switch (entry) { |