On 30-06-26, 18:48, Steven Rostedt wrote: > From: Steven Rostedt <[email protected]> > > Currently on boot up and when modules are loaded, the trace event > infrastructure will examine the TP_printk's of every event looking to see > if it dereferences pointers on the ring buffer via printk formats like > "%pB" and such. What it doesn't do is check if the arguments themselves > do a dereference from a pointer. > > This was brought with a fix[1] to the fsl_edma event that had in the > arguments of the TP_printk(): "__entry->edma->membase" > > The __entry->edma is a pointer saved in the ring buffer. The dereference > from TP_printk() happens when the user reads the "trace" file which can be > seconds, minutes, hours, days, weeks, or even months later! There is no > guarantee that the __entry->edma pointer will still be pointing to what it > was when it was recorded, and could crash the kernel when a user reads the > event. > > Add logic to the test_event_printk() that also checks for this case and > warn if the event dereferences a pointer from the ring buffer.
Reviewed-by: Vinod Koul <[email protected]> -- ~Vinod
