aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov <ykaradzhov@vmware.com>2019-03-14 17:10:08 +0200
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-03-22 15:14:11 -0400
commit88b19c4d781a70c7ee14070c6655a423979c40e0 (patch)
treed4eb5827632aa836b644615f1ab751fe3c88505f
parent1cf477c277aeb7bef800b3dfe1583478853403b1 (diff)
downloadtrace-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.cpp2
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++] = {};