On Fri, 9 Aug 2024, Steven Rostedt wrote: > On Fri, 9 Aug 2024 13:34:28 -0400 (EDT) > John Kacur <jkacur@xxxxxxxxxx> wrote: > > > On Fri, 9 Aug 2024, Dan Carpenter wrote: > > > > > If the "tool->data" allocation fails then there is no need to call > > > osnoise_free_top() and, in fact, doing so will lead to a NULL dereference. > > > > > > Fixes: 1eceb2fc2ca5 ("rtla/osnoise: Add osnoise top mode") > > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > > --- > > > tools/tracing/rtla/src/osnoise_top.c | 11 ++++------- > > > 1 file changed, 4 insertions(+), 7 deletions(-) > > > > > > diff --git a/tools/tracing/rtla/src/osnoise_top.c b/tools/tracing/rtla/src/osnoise_top.c > > > index f594a44df840..2f756628613d 100644 > > > --- a/tools/tracing/rtla/src/osnoise_top.c > > > +++ b/tools/tracing/rtla/src/osnoise_top.c > > > @@ -651,8 +651,10 @@ struct osnoise_tool *osnoise_init_top(struct osnoise_top_params *params) > > > return NULL; > > > > > > tool->data = osnoise_alloc_top(nr_cpus); > > > - if (!tool->data) > > > - goto out_err; > > > + if (!tool->data) { > > > + osnoise_destroy_tool(tool); > > > + return NULL; > > > + } > > > > > > tool->params = params; > > > > > > @@ -660,11 +662,6 @@ struct osnoise_tool *osnoise_init_top(struct osnoise_top_params *params) > > > osnoise_top_handler, NULL); > > > > > > return tool; > > > - > > > -out_err: > > > - osnoise_free_top(tool->data); > > > - osnoise_destroy_tool(tool); > > > - return NULL; > > > } > > > > > > static int stop_tracing; > > > -- > > > > Although your fix appears to be correct, I wonder if it would be better to > > create a second error label, such as out_destroy_tool: as described in > > section 7 of the coding-style.rst > > > > There's no reason for that. It's the only error path. That is, nothing > would jump to the original out_err: > > And for a single error, an if statement is good enough. > > -- Steve > > Ah, right of course. Okay in that case, Signed-off-by: John Kacur <jkacur@xxxxxxxxxx> (applied the patch, built and ran)