freebsd-nq/sys/cddl/dev
Mark Johnston 4f1b715c84 Fix a tracepoint lookup race in fasttrap_pid_probe().
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
2019-02-21 22:54:17 +00:00
..
dtmalloc
dtrace Fix a tracepoint lookup race in fasttrap_pid_probe(). 2019-02-21 22:54:17 +00:00
fbt DTrace/powerpc: Fix FBT return probes 2018-11-21 16:47:11 +00:00
profile
sdt
systrace
prototype.c