perf tools: Make perf_exec_path() always return malloc'd string
authorMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Thu, 19 Nov 2015 06:04:53 +0000 (15:04 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 19 Nov 2015 16:19:19 +0000 (13:19 -0300)
commitc4068f51d40df151a661a384ab1309b11d7f012e
tree49f5332f3aa16b6eef6089885da532d8ae353e02
parentebe9729c8c3171aa46ad5d7af40acdc29806689d
perf tools: Make perf_exec_path() always return malloc'd string

Since system_path() returns malloc'd string if given path is not an
absolute path, perf_exec_path() sometimes returns a static string and
sometimes returns a malloc'd string depending on the environment
variables or command options.

This may cause a memory leak because the caller can not unconditionally
free the returned string.

This fixes perf_exec_path() and system_path() to always return a
malloc'd string, so the caller can always free it.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20151119060453.14210.65666.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/exec_cmd.c
tools/perf/util/exec_cmd.h
tools/perf/util/help.c