From 11b2baf83ddad75b5be1d1f138b8fd23cfa7a47e Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 8 Mar 2018 23:17:44 +0000 Subject: [PATCH] Don't create 4GB empty string if logfile fails to read properly. --- renderdoc/os/win32/win32_stringio.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/renderdoc/os/win32/win32_stringio.cpp b/renderdoc/os/win32/win32_stringio.cpp index ddb03023c..01bc5f85c 100644 --- a/renderdoc/os/win32/win32_stringio.cpp +++ b/renderdoc/os/win32/win32_stringio.cpp @@ -648,11 +648,19 @@ std::string logfile_readall(const char *filename) { DWORD len = GetFileSize(h, NULL); - ret.resize(len); + if(len == INVALID_FILE_SIZE) + { + DWORD err = GetLastError(); + ret = StringFormat::Fmt("Failed to read logfile, GetFileSize() threw %u", err); + } + else + { + ret.resize(len); - DWORD dummy = len; + DWORD dummy = len; - ReadFile(h, &ret[0], len, &dummy, NULL); + ReadFile(h, &ret[0], len, &dummy, NULL); + } CloseHandle(h); }