From a92d52c3c1676e25d742db387426315aee78e9f8 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 27 Dec 2017 08:39:10 -0800 Subject: intel/aubinator: Free section data last We were walking the sections, printing the batches, and then freeing them in one pass. If the batch happens to reference any earlier sections (which it almost certainly will since it's at the end), we will access freed memory. Reviewed-by: Lionel Landwerlin --- src/intel/tools/aubinator_error_decode.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/intel/tools/aubinator_error_decode.c b/src/intel/tools/aubinator_error_decode.c index d6fbfe0eb85..9dd70790e15 100644 --- a/src/intel/tools/aubinator_error_decode.c +++ b/src/intel/tools/aubinator_error_decode.c @@ -521,12 +521,14 @@ read_data_file(FILE *file) gen_print_batch(&batch_ctx, sections[s].data, sections[s].count, sections[s].gtt_offset); } + } + + gen_batch_decode_ctx_finish(&batch_ctx); + for (int s = 0; s < sect_num; s++) { free(sections[s].ring_name); free(sections[s].data); } - - gen_batch_decode_ctx_finish(&batch_ctx); } static void -- cgit v1.2.3