From: Reid Kleckner Date: Mon, 7 Aug 2017 21:23:38 +0000 (+0000) Subject: [Object] Initialize LoadConfig member to null X-Git-Tag: llvmorg-6.0.0-rc1~10666 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad7dc6e31fb9662e0046e3c74b00d075a4e0f3a3;p=platform%2Fupstream%2Fllvm.git [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 --- 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 0000000..cd6eb5a Binary files /dev/null and b/llvm/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe differ diff --git a/llvm/test/tools/llvm-readobj/coff-load-config.test b/llvm/test/tools/llvm-readobj/coff-load-config.test index 1eb67be..45c83b1 100644 --- a/llvm/test/tools/llvm-readobj/coff-load-config.test +++ b/llvm/test/tools/llvm-readobj/coff-load-config.test @@ -3,6 +3,8 @@ RUN: llvm-readobj -coff-load-config %S/Inputs/coff-load-config-x64.dll | FileChe RUN: llvm-readobj -coff-load-config %S/Inputs/coff-load-config-data-end.exe | FileCheck %s --check-prefix=DATAEND +RUN: llvm-readobj -coff-load-config %S/Inputs/coff-no-load-config.exe | FileCheck %s --check-prefix=NOCONFIG + X86: LoadConfig [ X86: Size: 0x5C X86: TimeDateStamp: 1970-01-01 00:00:00 (0x0) @@ -91,3 +93,6 @@ X64: ] DATAEND: SEHTable [ DATAEND-NEXT: 0x402006 DATAEND-NEXT: ] + +NOCONFIG: Format: COFF-x86-64 +NOCONFIG-NOT: LoadConfig