CVSROOT:        /cvs
Module name:    src
Changes by:     m...@cvs.openbsd.org    2012/08/12 11:14:39

Modified files:
        lib/libc/arch/m88k/gen: _setjmp.S setjmp.S sigsetjmp.S 

Log message:
Fix almost ten-years old bug in siglongjmp(), which would not restore a signal
mask of zero (because of flawed logic assuming finding zero in the sigjmp_buf
signal mask means sigsetjmp was invoked with a zero `savemask' argument).

While there, clean comments of all *{set,long}jmp routines, and shave a few
instructions by using bcnd insead of cmp + bb to test for zero values.

Passes the regress tests, and now devel/libsigsegv configure siglongjmp test
will not spin (this test is however flawed as it expects a signal handler
declared as running on the sigaltstack and `returning' through siglongjmp to
be invoked on the signal stack the next time the signal is raised).

Reply via email to