SDL: Fix potential memory leak in VULKAN_AcquireCommandBuffer() on error (8bf6e)

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