From 659c75319b606b8b978e5e99d76fac160eb6dd3e Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 23 Apr 2021 15:05:19 +0100 Subject: [PATCH] Bounds check input attributes against input array size we have --- renderdoc/driver/vulkan/vk_postvs.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_postvs.cpp b/renderdoc/driver/vulkan/vk_postvs.cpp index cade0dbc3..cd416fd7b 100644 --- a/renderdoc/driver/vulkan/vk_postvs.cpp +++ b/renderdoc/driver/vulkan/vk_postvs.cpp @@ -1495,6 +1495,17 @@ void VulkanReplay::FetchVSOut(uint32_t eventId, VulkanRenderState &state) m_pDriver->GetDeviceProps().limits.maxPerStageDescriptorStorageBuffers - 2; } + for(size_t i = 0; i < refl->inputSignature.size(); i++) + { + if(refl->inputSignature[i].regIndex >= MeshOutputBufferArraySize) + { + RDCERR("Input %s refers to attribute %u which is out of our array size %u", + refl->inputSignature[i].varName, refl->inputSignature[i].regIndex, + MeshOutputBufferArraySize); + return; + } + } + VkGraphicsPipelineCreateInfo pipeCreateInfo; // get pipeline create info