Clear BTYPE bits when setting up a signal handler and when handling a
authorkettenis <kettenis@openbsd.org>
Sun, 16 Apr 2023 10:14:59 +0000 (10:14 +0000)
committerkettenis <kettenis@openbsd.org>
Sun, 16 Apr 2023 10:14:59 +0000 (10:14 +0000)
commit98a8a58a8f51400acf32a042cfa61b62c11317b4
treeb5ae2af067d4778ced42d6de23f38b41b2cddd79
parent54d19d1e447aae1c58c1027bef992da04a524b88
Clear BTYPE bits when setting up a signal handler and when handling a
PT_CONTINUE ptrace(2) request.  Otherwise we would trap if userland was
interrupted at a point where it is doing an indirect branch that has set
the bits but before it has executed the BTI instruction at the branch
target.

The PT_SETREGS request may need similar treatment, at least when the
PC is changed.  But Linux doesn't do this and debuggers might want full
control over the BTYPE bits.  So leave this alone for now.

ok guenther@
sys/arch/arm64/arm64/process_machdep.c
sys/arch/arm64/arm64/sig_machdep.c
sys/arch/arm64/include/armreg.h