Module: Mesa
Branch: master
Commit: a92d52c3c1676e25d742db387426315aee78e9f8
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a92d52c3c1676e25d742db387426315aee78e9f8

Author: Jason Ekstrand <[email protected]>
Date:   Wed Dec 27 08:39:10 2017 -0800

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 <[email protected]>

---

 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 d6fbfe0eb8..9dd70790e1 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

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to