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
..
2013-12-27 15:17:00 -03:00
2012-02-13 23:17:40 -02:00
2015-05-18 10:17:33 -03:00
2015-05-05 18:13:22 -03:00
2015-05-05 18:13:22 -03:00
2015-01-21 13:24:31 -03:00
2014-12-19 13:09:43 +01:00
2013-08-07 17:35:26 -03:00
2014-05-01 21:22:39 +02:00
2014-07-10 00:22:54 +02:00
2014-07-10 00:22:54 +02:00
2014-05-01 21:22:39 +02:00
2014-07-23 11:48:11 -03:00
2014-07-23 11:48:11 -03:00
2014-05-01 21:22:39 +02:00