kernel-fxtec-pro1x/tools/perf/util
Masami Hiramatsu 6cb22ed4f0 perf probe: Fix memory leakage when the probe point is not found
[ Upstream commit 12d572e785b15bc764e956caaa8a4c846fd15694 ]

Fix the memory leakage in debuginfo__find_trace_events() when the probe
point is not found in the debuginfo. If there is no probe point found in
the debuginfo, debuginfo__find_probes() will NOT return -ENOENT, but 0.

Thus the caller of debuginfo__find_probes() must check the tf.ntevs and
release the allocated memory for the array of struct probe_trace_event.

The current code releases the memory only if the debuginfo__find_probes()
hits an error but not checks tf.ntevs. In the result, the memory allocated
on *tevs are not released if tf.ntevs == 0.

This fixes the memory leakage by checking tf.ntevs == 0 in addition to
ret < 0.

Fixes: ff74178350 ("perf probe: Introduce debuginfo to encapsulate dwarf information")
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: stable@vger.kernel.org
Link: http://lore.kernel.org/lkml/159438668346.62703.10887420400718492503.stgit@devnote2
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-08-26 10:30:58 +02:00
..
c++
cs-etm-decoder
include
intel-pt-decoder perf intel-pt: Fix FUP packet state 2020-08-21 11:05:34 +02:00
libunwind
scripting-engines
annotate.c perf annotate: Return appropriate error code for allocation failures 2019-11-06 13:05:44 +01:00
annotate.h
arm-spe-pkt-decoder.c
arm-spe-pkt-decoder.h
arm-spe.c
arm-spe.h
auxtrace.c
auxtrace.h
block-range.c
block-range.h
bpf-loader.c
bpf-loader.h
bpf-prologue.c
bpf-prologue.h
branch.c
branch.h
Build
build-id.c
build-id.h
cache.h
call-path.c
call-path.h
callchain.c
callchain.h
cgroup.c
cgroup.h
cloexec.c
cloexec.h
color.c
color.h
comm.c
comm.h
compress.h
config.c
config.h
counts.c
counts.h
cpumap.c
cpumap.h
cs-etm.c
cs-etm.h
ctype.c
data-convert-bt.c
data-convert-bt.h
data-convert.h
data.c
data.h
db-export.c
db-export.h
debug.c
debug.h
demangle-java.c
demangle-java.h
demangle-rust.c
demangle-rust.h
drv_configs.c
drv_configs.h
dso.c perf symbols: Fix debuginfo search for Ubuntu 2020-06-22 09:05:30 +02:00
dso.h perf symbols: Fix debuginfo search for Ubuntu 2020-06-22 09:05:30 +02:00
dump-insn.c
dump-insn.h
dwarf-aux.c perf probe: Fix to show function entry line as probe-able 2019-12-31 16:36:37 +01:00
dwarf-aux.h perf probe: Fix to show function entry line as probe-able 2019-12-31 16:36:37 +01:00
dwarf-regs.c
env.c
env.h
event.c
event.h
evlist.c
evlist.h
evsel.c
evsel.h
evsel_fprintf.c
expr.h
expr.y
find-vdso-map.c
genelf.c
genelf.h
genelf_debug.c
generate-cmdlist.sh
group.h
header.c perf tools: Fix segfault in cpu_cache_level__read() 2019-10-11 18:21:28 +02:00
header.h
help-unknown-cmd.c
help-unknown-cmd.h
hist.c perf tools: Fix time sorting 2019-11-12 19:20:37 +01:00
hist.h perf hists: Fix variable name's inconsistency in hists__for_each() macro 2020-01-23 08:21:30 +01:00
intel-bts.c
intel-bts.h
intel-pt.c
intel-pt.h
intlist.c
intlist.h
jit.h
jitdump.c perf inject jit: Fix JIT_CODE_MOVE filename 2019-10-17 13:45:15 -07:00
jitdump.h
kvm-stat.h
levenshtein.c
levenshtein.h
llvm-utils.c perf llvm: Don't access out-of-scope array 2019-10-17 13:45:14 -07:00
llvm-utils.h
lzma.c
machine.c perf map: No need to adjust the long name of modules 2020-01-27 14:49:53 +01:00
machine.h
map.c perf map: Fix off by one in strncpy() size argument 2020-04-02 15:28:24 +02:00
map.h
mem-events.c
mem-events.h
mem2node.c
mem2node.h
memswap.c
memswap.h
metricgroup.c
metricgroup.h
mmap.c
mmap.h
namespaces.c
namespaces.h
ordered-events.c
ordered-events.h
parse-branch-options.c
parse-branch-options.h
parse-events.c perf parse: If pmu configuration fails free terms 2019-12-31 16:35:50 +01:00
parse-events.h
parse-events.l
parse-events.y
parse-regs-options.c
parse-regs-options.h
path.c
path.h
perf-hooks-list.h
perf-hooks.c
perf-hooks.h
PERF-VERSION-GEN
perf_regs.c
perf_regs.h perf regs: Make perf_reg_name() return "unknown" instead of NULL 2020-01-04 19:13:14 +01:00
pmu.c
pmu.h
pmu.l
pmu.y
print_binary.c
print_binary.h
probe-event.c perf probe: Check address correctness by map instead of _etext 2020-06-22 09:05:30 +02:00
probe-event.h
probe-file.c
probe-file.h
probe-finder.c perf probe: Fix memory leakage when the probe point is not found 2020-08-26 10:30:58 +02:00
probe-finder.h
pstack.c
pstack.h
python-ext-sources
python.c
rb_resort.h
rblist.c
rblist.h
record.c
rwsem.c
rwsem.h
s390-cpumsf-kernel.h
s390-cpumsf.c
s390-cpumsf.h
sane_ctype.h
session.c
session.h
setns.c
setup.py
smt.c
smt.h
sort.c
sort.h
srcline.c perf: Make perf able to build with latest libbfd 2020-07-22 09:31:58 +02:00
srcline.h
stat-shadow.c perf stat: Fix shadow stats for clock events 2020-03-05 16:42:22 +01:00
stat.c perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode 2020-07-22 09:32:06 +02:00
stat.h perf stat: Reset previous counts on repeat with interval 2019-10-11 18:21:29 +02:00
strbuf.c perf strbuf: Remove redundant va_end() in strbuf_addv() 2020-01-04 19:13:24 +01:00
strbuf.h
strfilter.c
strfilter.h
string.c
string2.h
strlist.c
strlist.h
svghelper.c
svghelper.h
symbol-elf.c
symbol-minimal.c
symbol.c perf symbols: Fix debuginfo search for Ubuntu 2020-06-22 09:05:30 +02:00
symbol.h
symbol_fprintf.c
syscalltbl.c
syscalltbl.h
target.c
target.h
term.c
term.h
thread-stack.c
thread-stack.h
thread.c
thread.h
thread_map.c
thread_map.h
time-utils.c
time-utils.h
tool.h
top.c
top.h
trace-event-info.c
trace-event-parse.c
trace-event-read.c
trace-event-scripting.c
trace-event.c
trace-event.h
trigger.h
tsc.c
tsc.h
units.c
units.h
unwind-libdw.c
unwind-libdw.h
unwind-libunwind-local.c
unwind-libunwind.c
unwind.h
usage.c
util-cxx.h
util.c
util.h
values.c
values.h
vdso.c
vdso.h
xyarray.c
xyarray.h
zlib.c