On Wed, 24 Jun 2026 23:41:37 +0900 "Masami Hiramatsu (Google)" <[email protected]> wrote:
> From: Masami Hiramatsu (Google) <[email protected]> > > Since $comm or $COMM are not event field but special fetcharg > variables to access current->comm, It should not be accessed > without '$' prefix even with typecast. > Let me pick this to probes/core. Thanks, > Fixes: 69efd863a785 ("tracing/eprobes: Allow use of BTF names to dereference > pointers") > Signed-off-by: Masami Hiramatsu (Google) <[email protected]> > --- > Changes in v8: > - Newly added. > --- > kernel/trace/trace_probe.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c > index c10bbb0df7b9..0da7c0b53ba7 100644 > --- a/kernel/trace/trace_probe.c > +++ b/kernel/trace/trace_probe.c > @@ -342,10 +342,6 @@ static int parse_trace_event(char *arg, struct > fetch_insn *code, > ret = parse_trace_event_arg(arg, code, ctx); > if (!ret) > return 0; > - if (strcmp(arg, "comm") == 0 || strcmp(arg, "COMM") == 0) { > - code->op = FETCH_OP_COMM; > - return 0; > - } > return -EINVAL; > } > > @@ -1065,8 +1061,14 @@ static int parse_probe_vars(char *orig_arg, const > struct fetch_type *t, > int len; > > if (ctx->flags & TPARG_FL_TEVENT) { > - if (parse_trace_event(arg, code, ctx) < 0) > + if (parse_trace_event(arg, code, ctx) < 0) { > + /* 'comm' should be checked after field parsing. */ > + if (strcmp(arg, "comm") == 0 || strcmp(arg, "COMM") == > 0) { > + code->op = FETCH_OP_COMM; > + return 0; > + } > goto inval; > + } > return 0; > } > > -- Masami Hiramatsu (Google) <[email protected]>
