• Riccardo Mancini's avatar
    perf env: Fix memory leak of bpf_prog_info_linear member · 67069a1f
    Riccardo Mancini authored
    ASan reported a memory leak caused by info_linear not being deallocated.
    
    The info_linear was allocated during in perf_event__synthesize_one_bpf_prog().
    
    This patch adds the corresponding free() when bpf_prog_info_node
    is freed in perf_env__purge_bpf().
    
      $ sudo ./perf record -- sleep 5
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.025 MB perf.data (8 samples) ]
    
      =================================================================
      ==297735==ERROR: LeakSanitizer: detected memory leaks
    
      Direct leak of 7688 byte(s) in 19 object(s) allocated from:
          #0 0x4f420f in malloc (/home/user/linux/tools/perf/perf+0x4f420f)
          #1 0xc06a74 in bpf_program__get_prog_info_linear /home/user/linux/tools/lib/bpf/libbpf.c:11113:16
          #2 0xb426fe in perf_event__synthesize_one_bpf_prog /home/user/linux/tools/perf/util/bpf-event.c:191:16
          #3 0xb42008 in perf_event__synthesize_bpf_events /home/user/linux/tools/perf/util/bpf-event.c:410:9
          #4 0x594596 in record__synthesize /home/user/linux/tools/perf/builtin-record.c:1490:8
          #5 0x58c9ac in __cmd_record /home/user/linux/tools/perf/builtin-record.c:1798:8
          #6 0x58990b in cmd_record /home/user/linux/tools/perf/builtin-record.c:2901:8
          #7 0x7b2a20 in run_builtin /home/user/linux/tools/perf/perf.c:313:11
          #8 0x7b12ff in handle_internal_command /home/user/linux/tools/perf/perf.c:365:8
          #9 0x7b2583 in run_argv /home/user/linux/tools/perf/perf.c:409:2
          #10 0x7b0d79 in main /home/user/linux/tools/perf/perf.c:539:3
          #11 0x7fa357ef6b74 in __libc_start_main /usr/src/debug/glibc-2.33-8.fc34.x86_64/csu/../csu/libc-start.c:332:16
    Signed-off-by: default avatarRiccardo Mancini <rickyman7@gmail.com>
    Acked-by: default avatarIan Rogers <irogers@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Andrii Nakryiko <andrii@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: John Fastabend <john.fastabend@gmail.com>
    Cc: KP Singh <kpsingh@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Martin KaFai Lau <kafai@fb.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Song Liu <songliubraving@fb.com>
    Cc: Yonghong Song <yhs@fb.com>
    Link: http://lore.kernel.org/lkml/20210602224024.300485-1-rickyman7@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    67069a1f
env.c 8.65 KB