[PATCH] Fix: perf data convert: leak of bt_ctf_field_type

From: JÃrÃmie Galarneau
Date: Sat Oct 22 2016 - 15:57:32 EST


The ctf_writer structure contains an union of a structure containing
7 pointer members and an array of 6 struct bt_ctf_field_type*, which
are used to release the references to these objects in
ctf_writer__cleanup_data().

26812d46 introduced the u32_hex member and should have increased the
array's size. The disparity results in the last member of the "data"
structure being leaked as its reference is never released/put.

Philippe Proulx proposed a patch back in February which hasn't received
any feedback and would eliminate the need to manually update this
array.
http://lkml.iu.edu/hypermail/linux/kernel/1602.1/03800.html

CC-ing the people who were CC-ed on the original patch.

Signed-off-by: JÃrÃmie Galarneau <jeremie.galarneau@xxxxxxxxxxxx>
Cc: Wang Nan <wangnan0@xxxxxxxxxx>
Cc: Philippe Proulx <philippe.proulx@xxxxxxxxxxxx>
Cc: David S. Miller <davem@xxxxxxxxxxxxx>
Cc: Alexei Starovoitov <ast@xxxxxxxxxx>
Cc: Brendan Gregg <brendan.d.gregg@xxxxxxxxx>
Cc: David S. Miller <davem@xxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
---
tools/perf/util/data-convert-bt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/data-convert-bt.c b/tools/perf/util/data-convert-bt.c
index 7123f4d..16364f0 100644
--- a/tools/perf/util/data-convert-bt.c
+++ b/tools/perf/util/data-convert-bt.c
@@ -67,7 +67,7 @@ struct ctf_writer {
struct bt_ctf_field_type *u32_hex;
struct bt_ctf_field_type *u64_hex;
};
- struct bt_ctf_field_type *array[6];
+ struct bt_ctf_field_type *array[7];
} data;
struct bt_ctf_event_class *comm_class;
struct bt_ctf_event_class *exit_class;
--
2.10.1