diff options
author | Lynne <dev@lynne.ee> | 2024-11-24 17:28:23 +0100 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2024-11-26 14:14:14 +0100 |
commit | 86e552506dbeee9b43f209d441cfee1e81eb1287 (patch) | |
tree | 93242d35b5d9266475e287fa314f913311d43ee1 | |
parent | f582de8f343d25c7a67c6419f3bbbc8b102de994 (diff) | |
download | ffmpeg-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.c | 4 |
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; } } |