diff options
author | Kevin Enderby <enderby@apple.com> | 2016-10-18 20:24:12 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2016-10-18 20:24:12 +0000 |
commit | 89baf99c924bcb484339c2b06d49cfc1b63df761 (patch) | |
tree | 514a14d917210ba351d64b5b3be5a4b7c608bb2d /llvm/lib/Object/MachOObjectFile.cpp | |
parent | 304b124a118a5568eac472797afd00bd4b05b49a (diff) | |
download | bcm5719-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.cpp | 5 |
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"))) |