aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2024-11-24 17:28:23 +0100
committerLynne <dev@lynne.ee>2024-11-26 14:14:14 +0100
commit86e552506dbeee9b43f209d441cfee1e81eb1287 (patch)
tree93242d35b5d9266475e287fa314f913311d43ee1
parentf582de8f343d25c7a67c6419f3bbbc8b102de994 (diff)
downloadffmpeg-86e552506dbeee9b43f209d441cfee1e81eb1287.tar.gz
vulkan: zero out AVBufferRef in case of failure
This resulted in uninit errors and was never caught as we generally did not use massive allocations before.
-rw-r--r--libavutil/vulkan.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
index 5e8d69a297..eaf73eb4fd 100644
--- a/libavutil/vulkan.c
+++ b/libavutil/vulkan.c
@@ -1213,6 +1213,8 @@ int ff_vk_get_pooled_buffer(FFVulkanContext *ctx, AVBufferPool **buf_pool,
AVBufferRef *ref;
FFVkBuffer *data;
+ *buf = NULL;
+
if (!(*buf_pool)) {
*buf_pool = av_buffer_pool_init2(sizeof(FFVkBuffer), ctx,
alloc_data_buf, NULL);
@@ -1239,6 +1241,7 @@ int ff_vk_get_pooled_buffer(FFVulkanContext *ctx, AVBufferPool **buf_pool,
mem_props);
if (err < 0) {
av_buffer_unref(&ref);
+ *buf = NULL;
return err;
}
@@ -1246,6 +1249,7 @@ int ff_vk_get_pooled_buffer(FFVulkanContext *ctx, AVBufferPool **buf_pool,
err = ff_vk_map_buffer(ctx, data, &data->mapped_mem, 0);
if (err < 0) {
av_buffer_unref(&ref);
+ *buf = NULL;
return err;
}
}