Pārlūkot izejas kodu

Fix potential memory leak in VULKAN_AcquireCommandBuffer() on error

Petar Popovic 3 dienas atpakaļ
vecāks
revīzija
77f4a8e2b8
1 mainītis faili ar 5 papildinājumiem un 4 dzēšanām
  1. 5 4
      src/gpu/vulkan/SDL_gpu_vulkan.c

+ 5 - 4
src/gpu/vulkan/SDL_gpu_vulkan.c

@@ -9548,15 +9548,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