mirror of
https://github.com/opnsense/src.git
synced 2026-02-20 00:11:07 -05:00
fasttrap hooks the userspace breakpoint handler; the hook looks up the breakpoint address in a hash table of tracepoints. It is possible for the tracepoint to be removed by a different thread in between the breakpoint trap and the hash table lookup, in which case SIGTRAP gets delivered to the target process. Fix the problem by adding a per-process generation counter that gets incremented when a tracepoint belonging to that process is removed. Then, when a lookup fails, the trapping instruction is restarted if the thread's counter doesn't match that of the process. Reviewed by: cem MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19273 |
||
|---|---|---|
| .. | ||
| aarch64 | ||
| amd64 | ||
| arm | ||
| i386 | ||
| mips | ||
| powerpc | ||
| riscv | ||
| x86 | ||
| dtrace_anon.c | ||
| dtrace_cddl.h | ||
| dtrace_debug.c | ||
| dtrace_hacks.c | ||
| dtrace_ioctl.c | ||
| dtrace_load.c | ||
| dtrace_modevent.c | ||
| dtrace_sysctl.c | ||
| dtrace_test.c | ||
| dtrace_unload.c | ||
| dtrace_vtime.c | ||