tracing: Fix race where eprobes can be called before the event
authorSteven Rostedt (Google) <rostedt@goodmis.org>
Fri, 18 Nov 2022 02:42:49 +0000 (21:42 -0500)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Sun, 20 Nov 2022 19:05:50 +0000 (14:05 -0500)
commit94eedf3dded5fb472ce97bfaf3ac1c6c29c35d26
tree233feca1ebea1094b096d6a1378047cd37eaece7
parent067df9e0ad48a97382ab2179bbe773a13a846028
tracing: Fix race where eprobes can be called before the event

The flag that tells the event to call its triggers after reading the event
is set for eprobes after the eprobe is enabled. This leads to a race where
the eprobe may be triggered at the beginning of the event where the record
information is NULL. The eprobe then dereferences the NULL record causing
a NULL kernel pointer bug.

Test for a NULL record to keep this from happening.

Link: https://lore.kernel.org/linux-trace-kernel/20221116192552.1066630-1-rafaelmendsr@gmail.com/
Link: https://lore.kernel.org/linux-trace-kernel/20221117214249.2addbe10@gandalf.local.home
Cc: Linux Trace Kernel <linux-trace-kernel@vger.kernel.org>
Cc: Tzvetomir Stoyanov <tz.stoyanov@gmail.com>
Cc: Tom Zanussi <zanussi@kernel.org>
Cc: stable@vger.kernel.org
Fixes: 7491e2c442781 ("tracing: Add a probe that attaches to trace events")
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Reported-by: Rafael Mendonca <rafaelmendsr@gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/trace_eprobe.c