Re: [RFC][PATCH] tracing: Have traceprobe_probes_write() not access userspace unnecessarily

From: Ingo Molnar
Date: Fri Feb 10 2017 - 02:53:17 EST



* Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:

> On Thu, 9 Feb 2017 18:04:58 -0500
> Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> >
> > The code in traceprobe_probes_write() reads up to 4096 bytes from userpace
> > for each line. If userspace passes in several lines to execute, the code
> > will do a large read for each line, even though, it is highly likely that
> > the first read from userspace received all of the lines at one.
> >
> > I changed the logic to do a single read from userspace, and to only read
> > from userspace again if not all of the read from userspace made it in.
> >
> > I tested this by adding printk()s and writing files that would test -1, ==,
> > and +1 the buffer size, to make sure that there's no overflows and that if a
> > single line is written with +1 the buffer size, that it fails properly.
> >
>
> Thanks Steve!
>
> Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
>
> BTW, this can conflict with my previous patch.
>
> https://lkml.org/lkml/2017/2/6/1048
> https://lkml.org/lkml/2017/2/7/203
>
> I'll update this. Ingo, Can I send these patch to Steve?

Sure, I've not applied your patch yet - mind sending it to Steve on top of Steve's
patch?

Thanks,

Ingo