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 Thanks John Kacur