summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
diff options
context:
space:
mode:
authorGreg Fitzgerald <garious@gmail.com>2015-02-19 20:42:23 +0000
committerGreg Fitzgerald <garious@gmail.com>2015-02-19 20:42:23 +0000
commitcdaea4db269646e25b97e8139a37849303c56e92 (patch)
tree48020e65d5e5b61ecb8170d12fd7941a7394c5aa /lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
parent68ca67b212c3be05ab5a8f5f3c7afcaec785834f (diff)
downloadbcm5719-llvm-cdaea4db269646e25b97e8139a37849303c56e92.tar.gz
bcm5719-llvm-cdaea4db269646e25b97e8139a37849303c56e92.zip
Fix heap-buffer-overflow bugs identified by the Address Sanitizer
Differential Revision: http://reviews.llvm.org/D7733 llvm-svn: 229912
Diffstat (limited to 'lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp')
-rw-r--r--lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp b/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
index 40b257cd7a4..74b013f1d50 100644
--- a/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
+++ b/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
@@ -411,6 +411,9 @@ private:
}
}
+ if (atom->rawContent().size() < 4 * sizeof(uint32_t))
+ return entry;
+
using normalized::read32;
entry.rangeLength =
read32(atom->rawContent().data() + 2 * sizeof(uint32_t), _isBig);
OpenPOWER on IntegriCloud