From: Reid Kleckner Date: Mon, 7 Aug 2017 21:23:38 +0000 (+0000) Subject: [Object] Initialize LoadConfig member to null X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ed5628c9fc774d14cdb7771edcf9dadb2b8ddf8d;p=llvm [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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310308 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Object/COFF.h b/include/llvm/Object/COFF.h index 89c1ba6be35..fa5785562b7 100644 --- a/include/llvm/Object/COFF.h +++ b/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/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe b/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe new file mode 100644 index 00000000000..cd6eb5a2b2b Binary files /dev/null and b/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe differ diff --git a/test/tools/llvm-readobj/coff-load-config.test b/test/tools/llvm-readobj/coff-load-config.test index 1eb67beadde..45c83b12430 100644 --- a/test/tools/llvm-readobj/coff-load-config.test +++ b/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