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/[email protected]/ Link: https://lore.kernel.org/all/[email protected]/ Cc: [email protected] Fixes: 7491e2c ("tracing: Add a probe that attaches to trace events") Reported-by: Rafael Mendonca <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]> Acked-by: Masami Hiramatsu (Google) <[email protected]> Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
1 parent 40adaf5 commit d5f30a7

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

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)