• Milian Wolff's avatar
    perf report: Don't crash on invalid maps in `-g srcline` mode · 7d4df089
    Milian Wolff authored
    I just hit a segfault when doing `perf report -g srcline`.
    Valgrind pointed me at this code as the culprit:
    
      ==8359== Invalid read of size 8
      ==8359==    at 0x3096D9: map__rip_2objdump (map.c:430)
      ==8359==    by 0x2FC1A3: match_chain_srcline (callchain.c:645)
      ==8359==    by 0x2FC1A3: match_chain (callchain.c:700)
      ==8359==    by 0x2FC1A3: append_chain (callchain.c:895)
      ==8359==    by 0x2FC1A3: append_chain_children (callchain.c:846)
      ==8359==    by 0x2FF719: callchain_append (callchain.c:944)
      ==8359==    by 0x2FF719: hist_entry__append_callchain (callchain.c:1058)
      ==8359==    by 0x32FA06: iter_add_single_cumulative_entry (hist.c:908)
      ==8359==    by 0x33195C: hist_entry_iter__add (hist.c:1050)
      ==8359==    by 0x258F65: process_sample_event (builtin-report.c:204)
      ==8359==    by 0x30D60C: perf_session__deliver_event (session.c:1310)
      ==8359==    by 0x30D60C: ordered_events__deliver_event (session.c:119)
      ==8359==    by 0x310D12: __ordered_events__flush (ordered-events.c:210)
      ==8359==    by 0x310D12: ordered_events__flush.part.3 (ordered-events.c:277)
      ==8359==    by 0x30DD3C: perf_session__process_user_event (session.c:1349)
      ==8359==    by 0x30DD3C: perf_session__process_event (session.c:1475)
      ==8359==    by 0x30FC3C: __perf_session__process_events (session.c:1867)
      ==8359==    by 0x30FC3C: perf_session__process_events (session.c:1921)
      ==8359==    by 0x25A985: __cmd_report (builtin-report.c:575)
      ==8359==    by 0x25A985: cmd_report (builtin-report.c:1054)
      ==8359==    by 0x2B9A80: run_builtin (perf.c:296)
      ==8359==  Address 0x70 is not stack'd, malloc'd or (recently) free'd
    
    This patch fixes the issue.
    Signed-off-by: default avatarMilian Wolff <milian.wolff@kdab.com>
    [ Remove dependency from another change ]
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yao Jin <yao.jin@linux.intel.com>
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170524062129.32529-2-namhyung@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    7d4df089
callchain.c 33.5 KB