diff options
author | Yordan Karadzhov <ykaradzhov@vmware.com> | 2019-03-14 17:10:08 +0200 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-03-22 15:14:11 -0400 |
commit | 88b19c4d781a70c7ee14070c6655a423979c40e0 (patch) | |
tree | d4eb5827632aa836b644615f1ab751fe3c88505f | |
parent | 1cf477c277aeb7bef800b3dfe1583478853403b1 (diff) | |
download | trace-cmd-88b19c4d781a70c7ee14070c6655a423979c40e0.tar.gz |
kernel-shark: Fix memory leak in KsPlotget::getTaskColorTable()
The std::vector constructor used here makes a copy of the data, so
the memory used by the original array has to be freed.
This is a major leak because getTaskColorTable() gets called every
time when we redraw the plots.
BTW calling getTaskColorTable() every time when we redraw makes
no sense. This will be fixed in the following patch.
Link: http://lore.kernel.org/linux-trace-devel/20190314151012.905-9-ykaradzhov@vmware.com
Signed-off-by: Yordan Karadzhov <ykaradzhov@vmware.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r-- | kernel-shark/src/KsPlotTools.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel-shark/src/KsPlotTools.cpp b/kernel-shark/src/KsPlotTools.cpp index d07f4145..2b16a51c 100644 --- a/kernel-shark/src/KsPlotTools.cpp +++ b/kernel-shark/src/KsPlotTools.cpp @@ -122,6 +122,8 @@ ColorTable getTaskColorTable() std::vector<int> temp_pids(pids, pids + nTasks); std::sort(temp_pids.begin(), temp_pids.end()); + free(pids); + if (temp_pids[i] == 0) { /* The "Idle" process (pid = 0) will be plotted in black. */ colors[i++] = {}; |