From c7666cd8fc02ed42067027c3861e1bc34e4bf80f Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Mon, 3 Jan 2022 10:36:47 -0800 Subject: [PATCH] fix use after free --- src/Refresh_Driver_Vulkan.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Refresh_Driver_Vulkan.c b/src/Refresh_Driver_Vulkan.c index 4b3fcb5..cadc4c0 100644 --- a/src/Refresh_Driver_Vulkan.c +++ b/src/Refresh_Driver_Vulkan.c @@ -5945,7 +5945,7 @@ static void VULKAN_INTERNAL_MaybeExpandTransferBuffer( RESOURCE_ACCESS_MEMORY_TRANSFER_READ_WRITE, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, 1); - + if (commandBuffer->transferBuffers[0]->buffer == NULL) { Refresh_LogError("Failed to allocate transfer buffer!"); @@ -8067,6 +8067,7 @@ static void VULKAN_INTERNAL_ResetCommandBuffer( } SDL_free(commandBuffer->transferBuffers); + commandBuffer->transferBuffers = NULL; commandBuffer->transferBufferCount = 0; commandBuffer->submitted = 0; @@ -9093,7 +9094,7 @@ static Refresh_Device* VULKAN_INTERNAL_CreateDevice( 1 ); - if (renderer->vertexUBO == NULL) + if (renderer->vertexUBO == NULL) { Refresh_LogError("Failed to create vertex UBO!"); return NULL; @@ -9107,7 +9108,7 @@ static Refresh_Device* VULKAN_INTERNAL_CreateDevice( 1 ); - if (renderer->fragmentUBO == NULL) + if (renderer->fragmentUBO == NULL) { Refresh_LogError("Failed to create fragment UBO!"); return NULL; @@ -9380,7 +9381,7 @@ static Refresh_Device* VULKAN_INTERNAL_CreateDevice( 1 ); - if (renderer->dummyComputeUniformBuffer == NULL) + if (renderer->dummyComputeUniformBuffer == NULL) { Refresh_LogError("Failed to create dummy compute uniform buffer!"); return NULL;