Message ID | 171092223833.237219.17304490075697026697.stgit@devnote2 (mailing list archive) |
---|---|
State | Accepted |
Commit | 0add699ad068d26e5b1da9ff28b15461fc4005df |
Delegated to: | Masami Hiramatsu |
Headers | show |
Series | tracing: probes: Fix to zero initialize a local variable | expand |
On Wed, 20 Mar 2024 17:10:38 +0900 "Masami Hiramatsu (Google)" <mhiramat@kernel.org> wrote: > From: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > Fix to initialize 'val' local variable with zero. > Dan reported that Smatch static code checker reports an error that a local > 'val' variable needs to be initialized. Actually, the 'val' is expected to > be initialized by FETCH_OP_ARG in the same loop, but it is not obvious. So > initialize it with zero. > > Reported-by: Dan Carpenter <dan.carpenter@linaro.org> > Closes: https://lore.kernel.org/all/b010488e-68aa-407c-add0-3e059254aaa0@moroto.mountain/ > Fixes: 25f00e40ce79 ("tracing/probes: Support $argN in return probe (kprobe and fprobe)") > Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > --- Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org> -- Steve > kernel/trace/trace_probe.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c > index 217169de0920..dfe3ee6035ec 100644 > --- a/kernel/trace/trace_probe.c > +++ b/kernel/trace/trace_probe.c > @@ -839,7 +839,7 @@ int traceprobe_get_entry_data_size(struct trace_probe *tp) > void store_trace_entry_data(void *edata, struct trace_probe *tp, struct pt_regs *regs) > { > struct probe_entry_arg *earg = tp->entry_arg; > - unsigned long val; > + unsigned long val = 0; > int i; > > if (!earg)
On Wed, 20 Mar 2024 17:10:38 +0900 "Masami Hiramatsu (Google)" <mhiramat@kernel.org> wrote: > From: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > Fix to initialize 'val' local variable with zero. > Dan reported that Smatch static code checker reports an error that a local > 'val' variable needs to be initialized. Actually, the 'val' is expected to > be initialized by FETCH_OP_ARG in the same loop, but it is not obvious. So > initialize it with zero. BTW, that loop should really have a comment stating that FETCH_OP_ARG is expected to happen before FETCH_OP_ST_EDATA. -- Steve
On Wed, 20 Mar 2024 09:27:49 -0400 Steven Rostedt <rostedt@goodmis.org> wrote: > On Wed, 20 Mar 2024 17:10:38 +0900 > "Masami Hiramatsu (Google)" <mhiramat@kernel.org> wrote: > > > From: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > Fix to initialize 'val' local variable with zero. > > Dan reported that Smatch static code checker reports an error that a local > > 'val' variable needs to be initialized. Actually, the 'val' is expected to > > be initialized by FETCH_OP_ARG in the same loop, but it is not obvious. So > > initialize it with zero. > > BTW, that loop should really have a comment stating that FETCH_OP_ARG is > expected to happen before FETCH_OP_ST_EDATA. Indeed, OK, let me add it. Thank you, > > -- Steve
diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c index 217169de0920..dfe3ee6035ec 100644 --- a/kernel/trace/trace_probe.c +++ b/kernel/trace/trace_probe.c @@ -839,7 +839,7 @@ int traceprobe_get_entry_data_size(struct trace_probe *tp) void store_trace_entry_data(void *edata, struct trace_probe *tp, struct pt_regs *regs) { struct probe_entry_arg *earg = tp->entry_arg; - unsigned long val; + unsigned long val = 0; int i; if (!earg)