diff options
author | Ian Rogers <irogers@google.com> | 2024-08-13 07:06:12 +0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2024-08-14 15:35:18 +0300 |
commit | a05031713d460de5ff8500680458ed8f3fd946e6 (patch) | |
tree | 6885a1ed32b4d3e6c0acda40e83e34c836a95a9b /tools | |
parent | 3d557dd3f54e329556e880129d0181988893b00f (diff) | |
download | linux-a05031713d460de5ff8500680458ed8f3fd946e6.tar.xz |
perf disasm: Fix memory leak for locked operations
lock__parse() calls disasm_line__parse() passing
&ops->locked.ins.name that will use strdup() to populate it.
Ensure ops->locked.ins.name is freed in lock__delete().
Found with address/leak sanitizer.
Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Richter <tmricht@linux.ibm.com>
Link: https://lore.kernel.org/r/20240813040613.882075-1-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/util/disasm.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c index 22289003e16d..226d2181f694 100644 --- a/tools/perf/util/disasm.c +++ b/tools/perf/util/disasm.c @@ -566,6 +566,7 @@ static void lock__delete(struct ins_operands *ops) ins_ops__delete(ops->locked.ops); zfree(&ops->locked.ops); + zfree(&ops->locked.ins.name); zfree(&ops->target.raw); zfree(&ops->target.name); } |