diff options
| author | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2026-02-20 11:32:05 +1100 |
|---|---|---|
| committer | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2026-02-20 11:32:05 +1100 |
| commit | ed90d0388f1127b24e6a784bface2bcef7748be3 (patch) | |
| tree | cc4b59d0a15492d2c5f6b509962a2c1812491f88 /src/layer.cc | |
| parent | 350a85a375dc71d62953f31d282a05dfd3d79f4e (diff) | |
Fix UB with ranges::copy_n not handling nullptr iterator
Diffstat (limited to 'src/layer.cc')
| -rw-r--r-- | src/layer.cc | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/layer.cc b/src/layer.cc index 15f44a7..02acb03 100644 --- a/src/layer.cc +++ b/src/layer.cc @@ -213,12 +213,10 @@ static VKAPI_ATTR VkResult VKAPI_CALL CreateDevice( } auto next_extensions = std::vector<const char*>{}; - if (pCreateInfo->ppEnabledExtensionNames) { - std::ranges::copy_n(pCreateInfo->ppEnabledExtensionNames, - pCreateInfo->enabledExtensionCount, - std::back_inserter(next_extensions)); - } + std::ranges::copy(std::span{pCreateInfo->ppEnabledExtensionNames, + pCreateInfo->enabledExtensionCount}, + std::back_inserter(next_extensions)); const auto wanted_extensions = { VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME, @@ -503,9 +501,9 @@ vkQueueSubmit(VkQueue queue, std::uint32_t submit_count, next_cbs.emplace_back([&]() -> auto { auto cbs = std::make_unique<cbs_t>(); cbs->push_back(head_handle->command_buffer); - std::ranges::copy_n(submit.pCommandBuffers, - submit.commandBufferCount, - std::back_inserter(*cbs)); + std::ranges::copy(std::span{submit.pCommandBuffers, + submit.commandBufferCount}, + std::back_inserter(*cbs)); cbs->push_back(tail_handle->command_buffer); return cbs; }()); @@ -555,9 +553,9 @@ vkQueueSubmit2(VkQueue queue, std::uint32_t submit_count, .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO, .commandBuffer = head_handle->command_buffer, }); - std::ranges::copy_n(submit.pCommandBufferInfos, - submit.commandBufferInfoCount, - std::back_inserter(*cbs)); + std::ranges::copy(std::span{submit.pCommandBufferInfos, + submit.commandBufferInfoCount}, + std::back_inserter(*cbs)); cbs->push_back(VkCommandBufferSubmitInfo{ .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO, .commandBuffer = tail_handle->command_buffer, |
