Skip to content

Commit d5f30a7

Browse files
rostedtmhiramat
authored andcommitted
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/all/20221117214249.2addbe10@gandalf.local.home/ Cc: stable@vger.kernel.org Fixes: 7491e2c ("tracing: Add a probe that attaches to trace events") Reported-by: Rafael Mendonca <rafaelmendsr@gmail.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
1 parent 40adaf5 commit d5f30a7

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

kernel/trace/trace_eprobe.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,9 @@ static void eprobe_trigger_func(struct event_trigger_data *data,
564564
{
565565
struct eprobe_data *edata = data->private_data;
566566

567+
if (unlikely(!rec))
568+
return;
569+
567570
__eprobe_trace_func(edata, rec);
568571
}
569572

0 commit comments

Comments
 (0)