Module: Mesa Branch: master Commit: 0f9d8b754f56fd2aaab5599a43cefe6b1ff88519 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0f9d8b754f56fd2aaab5599a43cefe6b1ff88519
Author: Lionel Landwerlin <[email protected]> Date: Wed Jul 18 17:39:19 2018 +0100 intel: tools: aubwrite: fix invalid frees on finish Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jordan Justen <[email protected]> --- src/intel/tools/aub_write.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/intel/tools/aub_write.c b/src/intel/tools/aub_write.c index 07f38b97d4..6fb99feb00 100644 --- a/src/intel/tools/aub_write.c +++ b/src/intel/tools/aub_write.c @@ -255,11 +255,16 @@ align_u32(uint32_t v, uint32_t a) } static void -aub_ppgtt_table_finish(struct aub_ppgtt_table *table) +aub_ppgtt_table_finish(struct aub_ppgtt_table *table, int level) { + if (level == 1) + return; + for (unsigned i = 0; i < ARRAY_SIZE(table->subtables); i++) { - aub_ppgtt_table_finish(table->subtables[i]); - free(table->subtables[i]); + if (table->subtables[i]) { + aub_ppgtt_table_finish(table->subtables[i], level - 1); + free(table->subtables[i]); + } } } @@ -280,7 +285,7 @@ aub_file_init(struct aub_file *aub, FILE *file, uint16_t pci_id) void aub_file_finish(struct aub_file *aub) { - aub_ppgtt_table_finish(&aub->pml4); + aub_ppgtt_table_finish(&aub->pml4, 4); fclose(aub->file); } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
