diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2014-07-16 10:19:44 +0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-07-17 10:34:07 -0300 |
commit | 418029b7324f8b90ac1dfbc8a44555d6905be761 (patch) | |
tree | 58cda698a75560911cf01a0c103f3e51d91286d4 /tools/perf | |
parent | 9608b84e4dd95341b88cad646b114811f5bccbba (diff) | |
download | linux-418029b7324f8b90ac1dfbc8a44555d6905be761.tar.bz2 |
perf machine: Fix leak of 'struct thread' on error path
__machine__findnew_thread() creates a 'struct thread' but does not free
it on the error path. Fix it.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1405495184-20441-3-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/util/machine.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c index 5484fa4385fc..93c8b6fbc799 100644 --- a/tools/perf/util/machine.c +++ b/tools/perf/util/machine.c @@ -370,8 +370,10 @@ static struct thread *__machine__findnew_thread(struct machine *machine, * within thread__init_map_groups to find the thread * leader and that would screwed the rb tree. */ - if (thread__init_map_groups(th, machine)) + if (thread__init_map_groups(th, machine)) { + thread__delete(th); return NULL; + } } return th; |