From b0fb23ef897f698c65c4a8636d622ff07c858420 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 31 Aug 2018 21:34:34 +0100 Subject: [PATCH] Don't try to read uninitialised memory serialising strings during replay --- renderdoc/driver/vulkan/vk_serialise.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_serialise.cpp b/renderdoc/driver/vulkan/vk_serialise.cpp index 1dde4bee6..d0b51c884 100644 --- a/renderdoc/driver/vulkan/vk_serialise.cpp +++ b/renderdoc/driver/vulkan/vk_serialise.cpp @@ -3185,7 +3185,10 @@ void DoSerialise(SerialiserType &ser, VkImportMemoryWin32HandleInfoKHR &el) } { - std::string name = el.name ? StringFormat::Wide2UTF8(std::wstring(el.name)) : ""; + std::string name; + + if(ser.IsWriting()) + name = el.name ? StringFormat::Wide2UTF8(std::wstring(el.name)) : ""; ser.Serialise("name", name); @@ -3226,7 +3229,10 @@ void DoSerialise(SerialiserType &ser, VkExportFenceWin32HandleInfoKHR &el) SERIALISE_MEMBER_TYPED(uint32_t, dwAccess); { - std::string name = StringFormat::Wide2UTF8(std::wstring(el.name)); + std::string name; + + if(ser.IsWriting()) + name = el.name ? StringFormat::Wide2UTF8(std::wstring(el.name)) : ""; ser.Serialise("name", name); @@ -3265,7 +3271,10 @@ void DoSerialise(SerialiserType &ser, VkExportSemaphoreWin32HandleInfoKHR &el) SERIALISE_MEMBER_TYPED(uint32_t, dwAccess); { - std::string name = StringFormat::Wide2UTF8(std::wstring(el.name)); + std::string name; + + if(ser.IsWriting()) + name = el.name ? StringFormat::Wide2UTF8(std::wstring(el.name)) : ""; ser.Serialise("name", name);