Skip to content

Commit 94eedf3

Browse files
committed
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/linux-trace-kernel/[email protected] Cc: Linux Trace Kernel <[email protected]> Cc: Tzvetomir Stoyanov <[email protected]> Cc: Tom Zanussi <[email protected]> Cc: [email protected] Fixes: 7491e2c ("tracing: Add a probe that attaches to trace events") Acked-by: Masami Hiramatsu (Google) <[email protected]> Reported-by: Rafael Mendonca <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]>
1 parent 067df9e commit 94eedf3

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
@@ -563,6 +563,9 @@ static void eprobe_trigger_func(struct event_trigger_data *data,
563563
{
564564
struct eprobe_data *edata = data->private_data;
565565

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

0 commit comments

Comments
 (0)