• Milian Wolff's avatar
    perf report: Fix memory leak in addr2line when called by addr2inlines · b21cc978
    Milian Wolff authored
    When a filename was found in addr2line it was duplicated via strdup()
    but never freed. Now we pass NULL and handle this gracefully in
    addr2line.
    
    Detected by Valgrind:
    
      ==16331== 1,680 bytes in 21 blocks are definitely lost in loss record 148 of 220
      ==16331==    at 0x4C2AF1F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==16331==    by 0x672FA69: strdup (in /usr/lib/libc-2.25.so)
      ==16331==    by 0x52769F: addr2line (srcline.c:256)
      ==16331==    by 0x52769F: addr2inlines (srcline.c:294)
      ==16331==    by 0x52769F: dso__parse_addr_inlines (srcline.c:502)
      ==16331==    by 0x574D7A: inline__fprintf (hist.c:41)
      ==16331==    by 0x574D7A: ipchain__fprintf_graph (hist.c:147)
      ==16331==    by 0x57518A: __callchain__fprintf_graph (hist.c:212)
      ==16331==    by 0x5753CF: callchain__fprintf_graph.constprop.6 (hist.c:337)
      ==16331==    by 0x57738E: hist_entry__fprintf (hist.c:628)
      ==16331==    by 0x57738E: hists__fprintf (hist.c:882)
      ==16331==    by 0x44A20F: perf_evlist__tty_browse_hists (builtin-report.c:399)
      ==16331==    by 0x44A20F: report__browse_hists (builtin-report.c:491)
      ==16331==    by 0x44A20F: __cmd_report (builtin-report.c:624)
      ==16331==    by 0x44A20F: cmd_report (builtin-report.c:1054)
      ==16331==    by 0x4A49CE: run_builtin (perf.c:296)
      ==16331==    by 0x4A4CC0: handle_internal_command (perf.c:348)
      ==16331==    by 0x434371: run_argv (perf.c:392)
      ==16331==    by 0x434371: main (perf.c:530)
    Signed-off-by: default avatarMilian Wolff <milian.wolff@kdab.com>
    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-3-namhyung@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    b21cc978
srcline.c 9.48 KB