perf probe: Use zfree() to avoid possibly accessing dangling pointers
authorArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 7 May 2024 03:04:06 +0000 (00:04 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 7 May 2024 15:44:02 +0000 (12:44 -0300)
When freeing a->b it is good practice to set a->b to NULL using
zfree(&a->b) so that when we have a bug where a reference to a freed 'a'
pointer is kept somewhere, we can more quickly cause a segfault if some
code tries to use a->b.

Convert one such case in the 'perf probe' codebase.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/lkml/ZjpBnkL2wO3QJa5W@x1
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-probe.c

index 019fef8da6a8e60f546f66da8f6e0da68c4437f2..003a3bcebfdfc2d132c0633b7e9375fd2e553fa4 100644 (file)
@@ -325,7 +325,7 @@ static void cleanup_params(void)
        for (i = 0; i < params->nevents; i++)
                clear_perf_probe_event(params->events + i);
        line_range__clear(&params->line_range);
-       free(params->target);
+       zfree(&params->target);
        strfilter__delete(params->filter);
        nsinfo__put(params->nsi);
        zfree(&params);