Revert part of rev 1.293. Using cursig() to deliver masked signals
authorclaudio <claudio@openbsd.org>
Fri, 11 Mar 2022 10:05:38 +0000 (10:05 +0000)
committerclaudio <claudio@openbsd.org>
Fri, 11 Mar 2022 10:05:38 +0000 (10:05 +0000)
commit22e3c1c9a1ccc65f02eb873b70178e8e7df74a3f
treef2696c7872af5f477f9cbbf8a7cd00c20c42407d
parentbd2dbcbd84aaf07c1d65fef05358610eedbafed9
Revert part of rev 1.293. Using cursig() to deliver masked signals
to the debugger can cause a loop between the debugger and cursig()
if the signal is masked. cursig() has no way to know which signal
was already delivered to the debugger and so it delivers the same
signal over and over again.

Instead handle traps to masked signals directly in trapsignal. This
is what rev 1.293 was mostly about. If SIGTRAP was masked by the
process breakpoints no longer worked since the signal deliver to
the debugger did not happen. Doing this case in trapsignal solves
both the problem with the loop and the delivery of masked traps.

Problem reported and fix tested by matthieu@
OK kettenis@ mpi@
sys/kern/kern_sig.c