]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC 341800: Don't report stale signal information in ptrace_lwpinfo.
authorjhb <jhb@FreeBSD.org>
Wed, 2 Jan 2019 19:11:49 +0000 (19:11 +0000)
committerjhb <jhb@FreeBSD.org>
Wed, 2 Jan 2019 19:11:49 +0000 (19:11 +0000)
commit261ef81beafdd345090d5fd259ab07f4ab26ff2a
tree95780d2859b2d484854806d3cdf006774bbac071
parent44e727dc8a8d91388194c774f435aac06478ad2d
MFC 341800: Don't report stale signal information in ptrace_lwpinfo.

Once a signal's siginfo was copied to 'td_si' as part of the signal
exchange in issignal(), it was never cleared.  This caused future
thread events that are reported as SIGTRAP events without signal
information to report the stale siginfo in 'td_si'.  For example, if a
debugger created a new process and used SIGSTOP to stop it after
PT_ATTACH, future system call entry / exit events would set PL_FLAG_SI
with the SIGSTOP siginfo in pl_siginfo.  This broke 'catch syscall' in
current versions of gdb as it assumed PL_FLAG_SI with SIGTRAP
indicates a breakpoint or single step trap.
sys/kern/kern_sig.c
tests/sys/kern/ptrace_test.c