2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-20 19:23:57 +08:00
linux-next/tools/perf
Masami Hiramatsu 182c228ebc perf probe: Fix to handle errors in line_range searching
As Namhyung reported(https://lkml.org/lkml/2014/4/1/89),
current perf-probe -L option doesn't handle errors in line-range
searching correctly. It causes a SEGV if an error occured in the
line-range searching.

  ----
  $ perf probe -x ./perf -v -L map__load
  Open Debuginfo file: /home/namhyung/project/linux/tools/perf/perf
  fname: util/map.c, lineno:153
  New line range: 153 to 2147483647
  path: (null)
  Segmentation fault (core dumped)
  ----

This is because line_range_inline_cb() ignores errors
from find_line_range_by_line() which means that lr->path is
already freed on the error path in find_line_range_by_line().
As a result, get_real_path() accesses the lr->path and it
causes a NULL pointer exception.

This fixes line_range_inline_cb() to handle the error correctly,
and report it to the caller.

Anyway, this just fixes a possible SEGV bug, Namhyung's patch
is also required.

Reported-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20140402054831.19080.27006.stgit@ltc230.yrl.intra.hitachi.co.jp
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
2014-04-14 12:55:39 +02:00
..
arch perf tools: Setup default dwarf post unwinder 2014-02-24 09:29:36 -03:00
bench perf bench: Add futex-requeue microbenchmark 2014-03-14 11:20:44 -03:00
config perf tools: Pick up libdw without explicit LIBDW_DIR 2014-04-14 12:55:17 +02:00
Documentation perf top: Fix documentation of invalid -s option 2014-04-14 12:54:59 +02:00
python perf python: Remove duplicate TID bit from mask 2013-08-07 17:35:25 -03:00
scripts perf tools: Finish the removal of 'self' arguments 2013-11-05 15:32:36 -03:00
tests perf tools: Use tid in mmap/mmap2 events to find maps 2014-03-18 18:17:00 -03:00
ui perf ui hists: Pass evsel to hpp->header/width functions explicitly 2014-03-14 18:08:40 -03:00
util perf probe: Fix to handle errors in line_range searching 2014-04-14 12:55:39 +02:00
.gitignore perf tools: Ignore 'perf timechart' output file 2013-10-11 12:17:37 -03:00
builtin-annotate.c perf evlist: Introduce evlist__for_each() & friends 2014-01-13 10:06:25 -03:00
builtin-bench.c perf bench: Add futex-requeue microbenchmark 2014-03-14 11:20:44 -03:00
builtin-buildid-cache.c perf buildid-cache: Check relocation when checking for existing kcore 2014-01-31 17:21:54 -03:00
builtin-buildid-list.c perf session: Separating data file properties from session 2013-10-21 17:33:25 -03:00
builtin-diff.c perf ui hists: Pass evsel to hpp->header/width functions explicitly 2014-03-14 18:08:40 -03:00
builtin-evlist.c perf evlist: Introduce evlist__for_each() & friends 2014-01-13 10:06:25 -03:00
builtin-help.c perf help: Fix --help for builtins 2012-10-22 12:35:49 -02:00
builtin-inject.c perf callchain: Add mask into struct regs_dump 2014-02-18 09:34:48 -03:00
builtin-kmem.c perf evsel: Ditch evsel->handler.data field 2013-11-07 10:40:47 -03:00
builtin-kvm.c perf kvm: introduce --list-cmds for use by scripts 2014-03-14 18:08:41 -03:00
builtin-list.c perf list: Add usage 2013-11-05 14:26:41 -03:00
builtin-lock.c perf evsel: Ditch evsel->handler.data field 2013-11-07 10:40:47 -03:00
builtin-mem.c perf mem: Remove unused parameter from dump_raw_samples() 2013-12-19 17:03:39 -03:00
builtin-probe.c perf probe: Replace line_list with intlist 2014-02-18 09:34:50 -03:00
builtin-record.c perf callchain: Introduce HAVE_DWARF_UNWIND_SUPPORT macro 2014-02-18 09:34:48 -03:00
builtin-report.c perf report: Use ui__has_annotation() 2014-03-18 18:17:02 -03:00
builtin-sched.c perf sched: Fixup header alignment in 'latency' output 2014-03-18 18:16:55 -03:00
builtin-script.c perf evlist: Introduce evlist__for_each() & friends 2014-01-13 10:06:25 -03:00
builtin-stat.c perf evlist: Introduce evlist__for_each() & friends 2014-01-13 10:06:25 -03:00
builtin-timechart.c perf symbols: Record the reason for filtering an address_location 2014-03-18 18:16:57 -03:00
builtin-top.c Merge branch 'perf/urgent' into perf/core 2014-03-11 11:53:50 +01:00
builtin-trace.c perf trace: Decode architecture-specific signal numbers 2014-03-10 11:10:45 -03:00
builtin.h perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
command-list.txt perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
CREDITS perf_counter tools: Add CREDITS file for Git contributors 2009-06-24 19:54:29 +02:00
design.txt perf tools: Update some code references in design.txt 2014-03-18 18:17:06 -03:00
Makefile perf tools: Add 'build-test' make target 2014-01-16 16:26:26 -03:00
Makefile.perf perf bench: Add futex-requeue microbenchmark 2014-03-14 11:20:44 -03:00
MANIFEST perf tools: Move hash.h header 2014-02-18 09:34:49 -03:00
perf-archive.sh perf archive: Make 'f' the last parameter for tar 2012-09-17 13:10:42 -03:00
perf-completion.sh perf kvm: introduce --list-cmds for use by scripts 2014-03-14 18:08:41 -03:00
perf.c tools/: Convert to new topic libraries 2013-12-16 16:03:27 -03:00
perf.h perf bench: Add futex-hash microbenchmark 2014-03-14 11:20:43 -03:00