From 8bf6e231641fdc4d8438e51db3ac5b4863f05af2 Mon Sep 17 00:00:00 2001
From: Petar Popovic <[EMAIL REDACTED]>
Date: Sun, 1 Mar 2026 18:44:39 +0100
Subject: [PATCH] Fix potential memory leak in VULKAN_AcquireCommandBuffer() on
error
(cherry picked from commit 77f4a8e2b8066d3bc376eab1ce443e57bc04d4ee)
---
src/gpu/vulkan/SDL_gpu_vulkan.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/gpu/vulkan/SDL_gpu_vulkan.c b/src/gpu/vulkan/SDL_gpu_vulkan.c
index ea75c15864766..102fc166c3c2e 100644
--- a/src/gpu/vulkan/SDL_gpu_vulkan.c
+++ b/src/gpu/vulkan/SDL_gpu_vulkan.c
@@ -9499,15 +9499,16 @@ static SDL_GPUCommandBuffer *VULKAN_AcquireCommandBuffer(
VulkanCommandBuffer *commandBuffer =
VULKAN_INTERNAL_GetInactiveCommandBufferFromPool(renderer, threadID);
+ if (commandBuffer == NULL) {
+ SDL_UnlockMutex(renderer->acquireCommandBufferLock);
+ return NULL;
+ }
+
DescriptorSetCache *descriptorSetCache =
VULKAN_INTERNAL_AcquireDescriptorSetCache(renderer);
SDL_UnlockMutex(renderer->acquireCommandBufferLock);
- if (commandBuffer == NULL) {
- return NULL;
- }
-
commandBuffer->descriptorSetCache = descriptorSetCache;
// Reset state