aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Rostedt (Google) <rostedt@goodmis.org>2022-03-23 20:08:05 -0400
committerSteven Rostedt (Google) <rostedt@goodmis.org>2022-03-24 17:52:12 -0400
commit1524530ad78b4a6d02f1965024cf95321dad43f0 (patch)
tree67ddd449c456045b45bcd6c6cdaa2946d9216a44
parentdcdf343662ebfdb78b48b90ea2aa130055220baa (diff)
downloadtrace-cmd-1524530ad78b4a6d02f1965024cf95321dad43f0.tar.gz
trace-cmd library: Fix memory leak of page_maps
tracecmd_close() does not free up the page_maps for when it reads v6 files. This was found via valgrind. Link: https://lore.kernel.org/linux-trace-devel/20220324000805.1666464-3-rostedt@goodmis.org Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-rw-r--r--lib/trace-cmd/trace-input.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c
index f74c466a..ce17f95e 100644
--- a/lib/trace-cmd/trace-input.c
+++ b/lib/trace-cmd/trace-input.c
@@ -4431,6 +4431,7 @@ void tracecmd_close(struct tracecmd_input *handle)
struct zchunk_cache *cache;
struct file_section *del_sec;
struct cpu_data *cpu_data;
+ struct page_map *page_map, *n;
int cpu;
int i;
@@ -4475,6 +4476,10 @@ void tracecmd_close(struct tracecmd_input *handle)
free(cache);
}
free(cpu_data->compress.chunks);
+ list_for_each_entry_safe(page_map, n, &cpu_data->page_maps, list) {
+ list_del(&page_map->list);
+ free(page_map);
+ }
}
}