ref: 613ef787956f5c8c1cb018f120b78c95c32cb2b9
parent: 3e367ef80a356c86c39cbd67285d4ac42fd0a9bb
author: Janne Grunau <janne-vlc@jannau.net>
date: Sat Oct 13 08:21:32 EDT 2018
free tile_thread task_idx_to_sby_and_tile_idx Fixes emmory leak with asan seen with 'dav1d --tilethreads 2 ...'
--- a/src/decode.c
+++ b/src/decode.c
@@ -2255,6 +2255,7 @@
if (f->n_tc > 1) {
if (f->frame_hdr.tiling.cols * f->sbh > f->tile_thread.titsati_sz) {
+ freep(&f->tile_thread.task_idx_to_sby_and_tile_idx);
f->tile_thread.task_idx_to_sby_and_tile_idx =
malloc(sizeof(*f->tile_thread.task_idx_to_sby_and_tile_idx) *
f->frame_hdr.tiling.cols * f->sbh);
--- a/src/lib.c
+++ b/src/lib.c
@@ -267,6 +267,7 @@
pthread_mutex_destroy(&f->tile_thread.lock);
pthread_cond_destroy(&f->tile_thread.cond);
pthread_cond_destroy(&f->tile_thread.icond);
+ freep(&f->tile_thread.task_idx_to_sby_and_tile_idx);
}
for (int m = 0; m < f->n_tc; m++) {
Dav1dTileContext *const t = &f->tc[m];