]> granicus.if.org Git - llvm/commitdiff
[Object] Initialize LoadConfig member to null
authorReid Kleckner <rnk@google.com>
Mon, 7 Aug 2017 21:23:38 +0000 (21:23 +0000)
committerReid Kleckner <rnk@google.com>
Mon, 7 Aug 2017 21:23:38 +0000 (21:23 +0000)
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

include/llvm/Object/COFF.h
test/tools/llvm-readobj/Inputs/coff-no-load-config.exe [new file with mode: 0644]
test/tools/llvm-readobj/coff-load-config.test

index 89c1ba6be35f0de37797878da8dbe16e151c8238..fa5785562b704f7ec283736ec1a9ba7306d0e2cd 100644 (file)
@@ -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 (file)
index 0000000..cd6eb5a
Binary files /dev/null and b/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe differ
index 1eb67beadde6302822c6fba99ce3365ecc8c513a..45c83b124304cd7006e26fbbcf8962d75e7392a5 100644 (file)
@@ -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