summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2016-10-18 20:24:12 +0000
committerKevin Enderby <enderby@apple.com>2016-10-18 20:24:12 +0000
commit89baf99c924bcb484339c2b06d49cfc1b63df761 (patch)
tree514a14d917210ba351d64b5b3be5a4b7c608bb2d /llvm/lib/Object/MachOObjectFile.cpp
parent304b124a118a5568eac472797afd00bd4b05b49a (diff)
downloadbcm5719-llvm-89baf99c924bcb484339c2b06d49cfc1b63df761.tar.gz
bcm5719-llvm-89baf99c924bcb484339c2b06d49cfc1b63df761.zip
One more additional error check for invalid Mach-O files for a
load command that use the MachO:: linkedit_data_command type but is not used in llvm libObject code but used in llvm tool code. This is for the LC_CODE_SIGNATURE load command. llvm-svn: 284529
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
-rw-r--r--llvm/lib/Object/MachOObjectFile.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp
index c0d7d83d08e..a6cdc288431 100644
--- a/llvm/lib/Object/MachOObjectFile.cpp
+++ b/llvm/lib/Object/MachOObjectFile.cpp
@@ -833,6 +833,7 @@ MachOObjectFile::MachOObjectFile(MemoryBufferRef Object, bool IsLittleEndian,
const char *FuncStartsLoadCmd = nullptr;
const char *SplitInfoLoadCmd = nullptr;
const char *CodeSignDrsLoadCmd = nullptr;
+ const char *CodeSignLoadCmd = nullptr;
const char *VersLoadCmd = nullptr;
const char *SourceLoadCmd = nullptr;
const char *EntryPointLoadCmd = nullptr;
@@ -885,6 +886,10 @@ MachOObjectFile::MachOObjectFile(MemoryBufferRef Object, bool IsLittleEndian,
if ((Err = checkLinkeditDataCommand(this, Load, I, &CodeSignDrsLoadCmd,
"LC_DYLIB_CODE_SIGN_DRS")))
return;
+ } else if (Load.C.cmd == MachO::LC_CODE_SIGNATURE) {
+ if ((Err = checkLinkeditDataCommand(this, Load, I, &CodeSignLoadCmd,
+ "LC_CODE_SIGNATURE")))
+ return;
} else if (Load.C.cmd == MachO::LC_DYLD_INFO) {
if ((Err = checkDyldInfoCommand(this, Load, I, &DyldInfoLoadCmd,
"LC_DYLD_INFO")))
OpenPOWER on IntegriCloud