CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2021/04/15 01:28:37
Modified files:
sys/arch/powerpc64/powerpc64: machdep.c
Log message:
The SSR1 register can have bits set that don't match to bits in the MSR
register. We would set the sc_ps member of struct sigcontext to SSR1
when entering a signal handler, and compare it to PSL_USER in sigreturn(2)
to make sure that the user code didn't set any bits it shouldn't set.
If non-MSR bits are set that comparison would fail and sigreturn(2) would
fail. Fix this by initializing sc_ps to PSL_USER instead of taking its
value from SSR1. On OpenBSD we always run processes with the same MSR
value.
ok deraadt@