linux/tools/perf
Adrian Hunter 554e92ed8f perf session: Fix perf_session__peek_event()
perf_session__peek_event() generally leverages there being a single mmap
of the perf.data file, however on 32-bit platforms when there is more
that 32MiB of data, then there are multiple mmaps, so
perf_session__peek_event() reads from the file.

In that case a couple of bugs were exposed (note how the seg. fault
appears with >32M of data):

   $ perf record --per-thread -e intel_bts// ../rtit-tests/loopy 1000000
   [ perf record: Woken up 13 times to write data ]
   [ perf record: Captured and wrote 24.568 MB perf.data ]
   $ perf script > /dev/null
   $ perf record --per-thread -e intel_bts// ../rtit-tests/loopy 10000000
   [ perf record: Woken up 136 times to write data ]
   [ perf record: Captured and wrote 270.794 MB perf.data ]
   $ perf script > /dev/null
   Segmentation fault (core dumped)

The wrong address was being passed to the readn() function and the
buffer size was not being checked.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Link: http://lkml.kernel.org/r/1432040746-1755-5-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-05-27 12:21:43 -03:00
..
arch perf probe ppc64le: Fixup function entry if using kallsyms lookup 2015-05-04 12:43:47 -03:00
bench perf bench numa: Share sched_getcpu() __weak def with cloexec.c 2015-05-18 12:36:46 -03:00
config perf build: Fix libunwind feature detection on 32-bit x86 2015-05-27 12:21:43 -03:00
Documentation perf tools: Document relation of per-thread event count feature 2015-05-12 09:59:48 -03:00
python
scripts perf build: Add scripts objects building 2015-02-12 11:49:53 -03:00
tests perf tools: Use atomic.h for the map_groups refcount 2015-05-15 15:20:44 -03:00
ui perf tools: Move TUI-specific fields out of map_symbol 2015-05-05 18:13:24 -03:00
util perf session: Fix perf_session__peek_event() 2015-05-27 12:21:43 -03:00
.gitignore perf build: Use FEATURE-DUMP instead of PERF-FEATURES in the .gitignore file 2015-03-20 17:49:51 -03:00
Build perf tools: Add new 'perf data' command 2015-02-25 12:42:25 -03:00
builtin-annotate.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
builtin-bench.c perf bench futex: Support parallel waker threads 2015-05-08 16:23:50 -03:00
builtin-buildid-cache.c perf buildid-cache: Show usage with incorrect params 2015-02-27 15:52:40 -03:00
builtin-buildid-list.c perf tools: Hit all build ids when AUX area tracing 2015-05-04 19:49:42 -03:00
builtin-data.c perf data: Support using -f to override perf.data file ownership for 'convert' 2015-04-02 13:18:52 -03:00
builtin-diff.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
builtin-evlist.c perf evlist: Support using -f to override perf.data file ownership 2015-04-02 13:18:45 -03:00
builtin-help.c perf tools: Add the bash completion for listing subsubcommands of perf help 2015-03-19 13:49:39 -03:00
builtin-inject.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
builtin-kmem.c perf kmem: Fix compiler warning about may be accessing uninitialized variable 2015-05-12 09:59:47 -03:00
builtin-kvm.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
builtin-list.c perf list: Extend raw-dump to certain kind of events 2015-02-27 15:52:24 -03:00
builtin-lock.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
builtin-mem.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
builtin-probe.c perf probe: Add --range option to show a variable's location range 2015-05-12 09:59:50 -03:00
builtin-record.c perf record: Add AUX area tracing Snapshot Mode support 2015-05-05 18:13:01 -03:00
builtin-report.c perf report: Do not restrict -T option by other options 2015-05-12 09:59:51 -03:00
builtin-sched.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
builtin-script.c perf machine: Protect the machine->threads with a rwlock 2015-05-08 16:19:27 -03:00
builtin-stat.c perf stat: Add metrics support for exclude_idle 2015-04-29 10:38:06 -03:00
builtin-timechart.c perf tools: Elliminate alignment holes 2015-05-18 10:17:33 -03:00
builtin-top.c Merge branch 'perf/urgent' into perf/core, to resolve conflicts 2015-05-11 11:56:27 +02:00
builtin-trace.c perf trace: Fix the build on older distros 2015-05-14 19:27:46 -03:00
builtin.h perf tools: Add new 'perf data' command 2015-02-25 12:42:25 -03:00
command-list.txt perf tools: Add new 'perf data' command 2015-02-25 12:42:25 -03:00
CREDITS
design.txt
Makefile perf tools: Use getconf to determine number of online CPUs 2015-05-04 12:43:40 -03:00
Makefile.perf perf tools: Separate the tests and tools in installation 2015-05-27 12:21:43 -03:00
MANIFEST tools include: Add basic atomic.h implementation from the kernel sources 2015-05-08 16:11:05 -03:00
perf-archive.sh
perf-completion.sh perf tools: Avoid confusion with preloaded bash function for perf bash completion 2015-03-19 13:53:27 -03:00
perf-read-vdso.c perf tools: Build programs to copy 32-bit compatibility 2014-10-29 10:32:48 -02:00
perf-sys.h perf tools: Move generic barriers out of perf-sys.h 2015-05-08 16:05:08 -03:00
perf-with-kcore.sh perf tools: Add perf-with-kcore script 2014-09-17 17:08:08 -03:00
perf.c perf tools: Fix the bash completion problem of 'perf --*' 2015-02-27 15:52:28 -03:00
perf.h perf tools: Add AUX area tracing Snapshot Mode 2015-05-05 18:13:00 -03:00