From: Jason Ekstrand Date: Wed, 27 Dec 2017 16:39:10 +0000 (-0800) Subject: intel/aubinator: Free section data last X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a92d52c3c1676e25d742db387426315aee78e9f8;p=mesa.git 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 --- 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