aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorNick Kledzik <kledzik@apple.com>2014-10-18 01:21:02 +0000
committerNick Kledzik <kledzik@apple.com>2014-10-18 01:21:02 +0000
commit3b2aa057e63e70d4556199b46ea8721c7f0f5ce0 (patch)
treee1941ac83d7f15bebf9a19ade2659dad0324cd8f /llvm/lib/Object/MachOObjectFile.cpp
parent6f9da55c0ff5c55b0bef1bc4907f9ce0915a10aa (diff)
downloadllvm-3b2aa057e63e70d4556199b46ea8721c7f0f5ce0.zip
llvm-3b2aa057e63e70d4556199b46ea8721c7f0f5ce0.tar.gz
llvm-3b2aa057e63e70d4556199b46ea8721c7f0f5ce0.tar.bz2
[llvm-objdump] Fix mach-o binding decompression error
llvm-svn: 220119
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
-rw-r--r--llvm/lib/Object/MachOObjectFile.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp
index 4435815..6e83d81 100644
--- a/llvm/lib/Object/MachOObjectFile.cpp
+++ b/llvm/lib/Object/MachOObjectFile.cpp
@@ -1974,20 +1974,20 @@ void MachOBindEntry::moveNext() {
SegmentOffset) << "\n");
return;
case MachO::BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB:
- AdvanceAmount = readULEB128();
+ AdvanceAmount = readULEB128() + PointerSize;
RemainingLoopCount = 0;
if (TableKind == Kind::Lazy)
Malformed = true;
DEBUG_WITH_TYPE(
"mach-o-bind",
- llvm::dbgs() << "BIND_OPCODE_DO_BIND_IMM_TIMES: "
+ llvm::dbgs() << "BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB: "
<< format("SegmentOffset=0x%06X", SegmentOffset)
<< ", AdvanceAmount=" << AdvanceAmount
<< ", RemainingLoopCount=" << RemainingLoopCount
<< "\n");
return;
case MachO::BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED:
- AdvanceAmount = ImmValue * PointerSize;
+ AdvanceAmount = ImmValue * PointerSize + PointerSize;
RemainingLoopCount = 0;
if (TableKind == Kind::Lazy)
Malformed = true;