Skip to content

Commit 7291dec

Browse files
rostedtgregkh
authored andcommitted
tracing: Fix race where eprobes can be called before the event
commit 94eedf3 upstream. 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]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 6517b97 commit 7291dec

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
@@ -567,6 +567,9 @@ static void eprobe_trigger_func(struct event_trigger_data *data,
567567
{
568568
struct eprobe_data *edata = data->private_data;
569569

570+
if (unlikely(!rec))
571+
return;
572+
570573
__eprobe_trace_func(edata, rec);
571574
}
572575

0 commit comments

Comments
 (0)