Messages in this thread | | | Date | Thu, 25 Nov 2021 18:38:46 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH] perf_counter tools: Fix memory leaks of add_cmdname() |
| |
Em Fri, Nov 19, 2021 at 10:46:36AM +0200, Sohaib Mohamed escreveu: > ASan reports some memory leaks when running: > > $ perf xyz > > This patch adds the missing clean_cmdnames() > > Fixes: 078006012401 ("perf_counter tools: add in basic glue from Git") > > Signed-off-by: Sohaib Mohamed <sohaib.amhmd@gmail.com> > --- > tools/lib/subcmd/help.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/lib/subcmd/help.c b/tools/lib/subcmd/help.c > index bf02d62a3b2b..4a433f4d19a1 100644 > --- a/tools/lib/subcmd/help.c > +++ b/tools/lib/subcmd/help.c > @@ -187,6 +187,7 @@ static void list_commands_in_dir(struct cmdnames *cmds, > > add_cmdname(cmds, de->d_name + prefix_len, entlen); > } > + clean_cmdnames(cmds);
Have you tested this?
Look at this usage:
void load_command_list(const char *prefix, struct cmdnames *main_cmds, struct cmdnames *other_cmds) { const char *env_path = getenv("PATH"); char *exec_path = get_argv_exec_path();
if (exec_path) { list_commands_in_dir(main_cmds, exec_path, prefix); qsort(main_cmds->names, main_cmds->cnt, sizeof(*main_cmds->names), cmdname_compare); uniq(main_cmds); }
If you call clean_cmdnames() in list_commands_in_dir() that call to qsort will be with main_cmds emptied, no?
- Arnaldo
> closedir(dir); > free(buf); > } > -- > 2.25.1
--
- Arnaldo
| |