mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
perf test: Fix a memory leak in attr test
The get_argv_exec_path() returns a dynamic memory so it should be
freed after use.
$ perf test -v 17
...
==141682==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 33 byte(s) in 1 object(s) allocated from:
#0 0x7f09107d2e8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
#1 0x7f091035f6a7 in __vasprintf_internal libio/vasprintf.c:71
SUMMARY: AddressSanitizer: 33 byte(s) leaked in 1 allocation(s).
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: https://lore.kernel.org/r/20210301140409.184570-3-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
b0faef924d
commit
09a61c8f86
|
|
@ -182,14 +182,20 @@ int test__attr(struct test *test __maybe_unused, int subtest __maybe_unused)
|
|||
struct stat st;
|
||||
char path_perf[PATH_MAX];
|
||||
char path_dir[PATH_MAX];
|
||||
char *exec_path;
|
||||
|
||||
/* First try development tree tests. */
|
||||
if (!lstat("./tests", &st))
|
||||
return run_dir("./tests", "./perf");
|
||||
|
||||
exec_path = get_argv_exec_path();
|
||||
if (exec_path == NULL)
|
||||
return -1;
|
||||
|
||||
/* Then installed path. */
|
||||
snprintf(path_dir, PATH_MAX, "%s/tests", get_argv_exec_path());
|
||||
snprintf(path_dir, PATH_MAX, "%s/tests", exec_path);
|
||||
snprintf(path_perf, PATH_MAX, "%s/perf", BINDIR);
|
||||
free(exec_path);
|
||||
|
||||
if (!lstat(path_dir, &st) &&
|
||||
!lstat(path_perf, &st))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user