linux/tools/perf
Arnaldo Carvalho de Melo df8350ed56 perf probe: Set pev->nargs to zero after freeing pev->args entries
So that, when perf_add_probe_events() fails, like in:

  # perf probe icmp_rcv:64 "type=icmph->type"
  Failed to find 'icmph' in this function.
    Error: Failed to add events.
  Segmentation fault (core dumped)
  #

We don't segfault.

clear_perf_probe_event() was zeroing the whole pev, and since the switch
to zfree() for the members in the pev, that memset() was removed, which
left nargs with its original value, in the above case 1.

With the memset the same pev could be passed to clear_perf_probe_event()
multiple times, since all it would have would be zeroes, and free()
accepts zero, the loop would not happen and we would just memset it
again to zeroes.

Without it we got that segfault, so zero nargs to keep it like it was,
next cset will avoid calling clear_perf_probe_event() for the same pevs
in case of failure.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Fixes: d8f9da2404 ("perf tools: Use zfree() where applicable")
Link: https://lkml.kernel.org/n/tip-802f2jypnwqsvyavvivs8464@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-07-23 09:04:25 -03:00
..
arch tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
bench perf tools: Use zfree() where applicable 2019-07-09 10:13:27 -03:00
Documentation perf script: Improve man page description of metrics 2019-07-23 08:58:11 -03:00
examples/bpf perf augmented_raw_syscalls: Move reading filename to the loop 2019-06-05 09:48:55 -03:00
include/bpf perf bpf: Automatically add BTF ELF markers 2019-03-06 09:45:37 -03:00
jvmti tools build: Check if gettid() is available before providing helper 2019-07-07 17:53:09 -03:00
pmu-events perf vendor events s390: Add JSON files for machine type 8561 2019-07-12 13:51:59 -03:00
python treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 407 2019-06-05 17:37:14 +02:00
scripts perf scripts python: export-to-postgresql.py: Export switch events 2019-07-10 13:05:12 -03:00
tests perf test: Auto bump rlimit(MEMLOCK) for BPF test sake 2019-07-09 16:27:01 -03:00
trace perf trace: Beautify 'sync_file_range' arguments 2019-05-28 18:37:43 -03:00
ui perf hists browser: Fix potential NULL pointer dereference found by the smatch tool 2019-07-09 10:13:27 -03:00
util perf probe: Set pev->nargs to zero after freeing pev->args entries 2019-07-23 09:04:25 -03:00
.gitignore
Build perf tools: Rename build libperf to perf 2019-02-14 15:18:08 -03:00
builtin-annotate.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-bench.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-buildid-cache.c perf data: Add global path holder 2019-02-22 16:52:07 -03:00
builtin-buildid-list.c perf data: Add global path holder 2019-02-22 16:52:07 -03:00
builtin-c2c.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-config.c perf tools: Add missing headers, mostly stdlib.h 2019-07-09 10:13:22 -03:00
builtin-data.c
builtin-diff.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-evlist.c perf data: Add global path holder 2019-02-22 16:52:07 -03:00
builtin-ftrace.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
builtin-help.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-inject.c perf inject: The tool->read() call may pass a NULL evsel, handle it 2019-07-09 09:33:55 -03:00
builtin-kallsyms.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 251 2019-06-05 17:30:26 +02:00
builtin-kmem.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-kvm.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-list.c perf list: Output tool events 2019-04-01 14:49:25 -03:00
builtin-lock.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
builtin-mem.c perf data: Add global path holder 2019-02-22 16:52:07 -03:00
builtin-probe.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-record.c perf tools: Use zfree() where applicable 2019-07-09 10:13:27 -03:00
builtin-report.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-sched.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-script.c perf script: Fix off by one in brstackinsn IPC computation 2019-07-23 08:59:37 -03:00
builtin-stat.c perf stat: Fix segfault for event group in repeat mode 2019-07-23 09:00:05 -03:00
builtin-timechart.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
builtin-top.c perf top: Fix potential NULL pointer dereference detected by the smatch tool 2019-07-09 09:33:54 -03:00
builtin-trace.c perf trace: Auto bump rlimit(MEMLOCK) for eBPF maps sake 2019-07-09 16:36:45 -03:00
builtin-version.c perf version: Fix segfault due to missing OPT_END() 2019-07-15 07:59:05 -03:00
builtin.h perf script: Add array bound checking to list_scripts 2019-03-11 16:33:19 -03:00
check-headers.sh tools perf: Move from sane_ctype.h obtained from git to the Linux's original 2019-06-25 21:02:47 -03:00
command-list.txt perf help: Add missing subcommand version 2018-09-19 14:53:36 -03:00
CREDITS
design.txt perf/doc: Update design.txt for exclude_{host|guest} flags 2019-01-21 11:01:18 +01:00
Makefile perf tools: Disable parallelism for 'make clean' 2018-08-20 08:54:58 -03:00
Makefile.config tools build: Check if gettid() is available before providing helper 2019-07-07 17:53:09 -03:00
Makefile.perf Linux 5.2-rc3 2019-06-03 11:56:35 +02:00
MANIFEST tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
perf-archive.sh
perf-completion.sh
perf-read-vdso.c perf tools: Make find_vdso_map() more modular 2019-01-08 13:28:13 -03:00
perf-sys.h
perf-with-kcore.sh Merge branch 'x86/cpu' into perf/core, to pick up dependent changes 2019-06-17 12:29:16 +02:00
perf.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
perf.h perf tools: Increase MAX_NR_CPUS and MAX_CACHES 2019-06-25 08:47:10 -03:00