From ad7dc6e31fb9662e0046e3c74b00d075a4e0f3a3 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Mon, 7 Aug 2017 21:23:38 +0000 Subject: [PATCH] [Object] Initialize LoadConfig member to null Executables may not contain a load config, and clients should be able to test for nullability. Previously we'd return uninitialized memory. Now getLoadConfig32/64 return valid pointers or null. Fixes PR34108 llvm-svn: 310308 --- llvm/include/llvm/Object/COFF.h | 2 +- .../tools/llvm-readobj/Inputs/coff-no-load-config.exe | Bin 0 -> 1024 bytes llvm/test/tools/llvm-readobj/coff-load-config.test | 5 +++++ 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 llvm/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe diff --git a/llvm/include/llvm/Object/COFF.h b/llvm/include/llvm/Object/COFF.h index 89c1ba6..fa57855 100644 --- a/llvm/include/llvm/Object/COFF.h +++ b/llvm/include/llvm/Object/COFF.h @@ -753,7 +753,7 @@ private: const debug_directory *DebugDirectoryBegin; const debug_directory *DebugDirectoryEnd; // Either coff_load_configuration32 or coff_load_configuration64. - const void *LoadConfig; + const void *LoadConfig = nullptr; std::error_code getString(uint32_t offset, StringRef &Res) const; diff --git a/llvm/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe b/llvm/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe new file mode 100644 index 0000000000000000000000000000000000000000..cd6eb5a2b2b5e36f7c11fb8d4c2ef08a6ffae00f GIT binary patch literal 1024 zcmeZ`V!#R(K