CVSROOT:        /cvs
Module name:    src
Changes by:     kette...@cvs.openbsd.org        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@

Reply via email to