From 1029f51285ecb8ccca7d37b59409cb0f6ba92ed3 Mon Sep 17 00:00:00 2001 From: Lynne Date: Mon, 17 Feb 2025 20:07:26 +0100 Subject: [PATCH] vulkan: fix crash in ff_vk_shader_free The issue is if a shader fails to compile, shd->desc_layout would not exist, but nb_descriptor_sets would. --- libavutil/vulkan.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c index d3ada59334..a868a3b90d 100644 --- a/libavutil/vulkan.c +++ b/libavutil/vulkan.c @@ -2595,10 +2595,12 @@ void ff_vk_shader_free(FFVulkanContext *s, FFVulkanShader *shd) av_free(set->binding_offset); } - for (int i = 0; i < shd->nb_descriptor_sets; i++) - if (shd->desc_layout[i]) - vk->DestroyDescriptorSetLayout(s->hwctx->act_dev, shd->desc_layout[i], - s->hwctx->alloc); + if (shd->desc_layout) { + for (int i = 0; i < shd->nb_descriptor_sets; i++) + if (shd->desc_layout[i]) + vk->DestroyDescriptorSetLayout(s->hwctx->act_dev, shd->desc_layout[i], + s->hwctx->alloc); + } av_freep(&shd->desc_pool_size); av_freep(&shd->desc_layout);