05abb3be91
Currently dma_resv_get_fences() will leak the previously
allocated array if the fence iteration got restarted and
the krealloc_array() fails.
Free the old array by hand, and make sure we still clear
the returned *fences so the caller won't end up accessing
freed memory. Some (but not all) of the callers of
dma_resv_get_fences() seem to still trawl through the
array even when dma_resv_get_fences() failed. And let's
zero out *num_fences as well for good measure.
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Christian König <christian.koenig@amd.com>
Cc: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Fixes:
|
||
---|---|---|
.. | ||
heaps | ||
Kconfig | ||
Makefile | ||
dma-buf-sysfs-stats.c | ||
dma-buf-sysfs-stats.h | ||
dma-buf.c | ||
dma-fence-array.c | ||
dma-fence-chain.c | ||
dma-fence-unwrap.c | ||
dma-fence.c | ||
dma-heap.c | ||
dma-resv.c | ||
selftest.c | ||
selftest.h | ||
selftests.h | ||
st-dma-fence-chain.c | ||
st-dma-fence-unwrap.c | ||
st-dma-fence.c | ||
st-dma-resv.c | ||
sw_sync.c | ||
sync_debug.c | ||
sync_debug.h | ||
sync_file.c | ||
sync_trace.h | ||
udmabuf.c |