From: Ian Rogers Date: Tue, 13 Aug 2024 04:06:12 +0000 (-0700) Subject: perf disasm: Fix memory leak for locked operations X-Git-Tag: v6.12-rc1~109^2~178 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a05031713d460de5ff8500680458ed8f3fd946e6;p=thirdparty%2Fkernel%2Fstable.git 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 Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Athira Rajeev Cc: Ingo Molnar Cc: Jiri Olsa Cc: Kajol Jain Cc: Kan Liang Cc: Mark Rutland Cc: Peter Zijlstra Cc: Thomas Richter Link: https://lore.kernel.org/r/20240813040613.882075-1-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c index 22289003e16d1..226d2181f6945 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); }