On Sat, 1 Jun 2019 09:14:34 -0400 Sasha Levin <[email protected]> wrote:
> From: Masami Hiramatsu <[email protected]> > > [ Upstream commit 3dd1f7f24f8ceec00bbbc364c2ac3c893f0fdc4c ] > > Fix to make the type of $comm "string". If we set the other type to $comm > argument, it shows meaningless value or wrong data. Currently probe events > allow us to set string array type (e.g. ":string[2]"), or other digit types > like x8 on $comm. But since clearly $comm is just a string data, it should > not be fetched by other types including array. > > Link: > http://lkml.kernel.org/r/155723736241.9149.14582064184468574539.stgit@devnote2 > > Cc: Andreas Ziegler <[email protected]> > Cc: Ingo Molnar <[email protected]> > Cc: [email protected] > Fixes: 533059281ee5 ("tracing: probeevent: Introduce new argument fetching > code") I thought the "AUTOSEL" patches are to find patches that are not marked for stable and pull them in. It would be good to differentiate those in the subject. As I'm more inclined to audit automatically pulled in ones, because those are more likely to be incorrectly backported. -- Steve > Signed-off-by: Masami Hiramatsu <[email protected]> > Signed-off-by: Steven Rostedt (VMware) <[email protected]> > Signed-off-by: Sasha Levin <[email protected]> > --- > kernel/trace/trace_probe.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c > index 8f8411e7835fd..e41d389b7f491 100644 > --- a/kernel/trace/trace_probe.c > +++ b/kernel/trace/trace_probe.c > @@ -420,13 +420,14 @@ static int traceprobe_parse_probe_arg_body(char *arg, > ssize_t *size, > return -E2BIG; > } > } > - /* > - * The default type of $comm should be "string", and it can't be > - * dereferenced. > - */ > - if (!t && strcmp(arg, "$comm") == 0) > + > + /* Since $comm can not be dereferred, we can find $comm by strcmp */ > + if (strcmp(arg, "$comm") == 0) { > + /* The type of $comm must be "string", and not an array. */ > + if (parg->count || (t && strcmp(t, "string"))) > + return -EINVAL; > parg->type = find_fetch_type("string"); > - else > + } else > parg->type = find_fetch_type(t); > if (!parg->type) { > pr_info("Unsupported type: %s\n", t);

