[lld] r264234 - Avoid UB when creating empty atoms. NFC.
Pete Cooper via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 23 18:16:06 PDT 2016
Author: pete
Date: Wed Mar 23 20:16:06 2016
New Revision: 264234
URL: http://llvm.org/viewvc/llvm-project?rev=264234&view=rev
Log:
Avoid UB when creating empty atoms. NFC.
The stack-size.yaml test had an empty atom content array. This is
legal, but asking a BumpPtrAllocator for 0 sized data may not be
legal. Instead just avoid requesting any data when we can just return
an empty ArrayRef instead.
Modified:
lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp
Modified: lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp?rev=264234&r1=264233&r2=264234&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp (original)
+++ lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp Wed Mar 23 20:16:06 2016
@@ -334,6 +334,8 @@ struct MappingTraits<Section> {
NormalizedFile *file = info->_normalizeMachOFile;
assert(file != nullptr);
size_t size = _normalizedContent.size();
+ if (!size)
+ return ArrayRef<uint8_t>();
uint8_t *bytes = file->ownedAllocations.Allocate<uint8_t>(size);
std::copy(_normalizedContent.begin(), _normalizedContent.end(), bytes);
return makeArrayRef(bytes, size);
More information about the llvm-commits
mailing list