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]>

Reply via email to