From: Pete Cooper Date: Thu, 24 Mar 2016 01:16:06 +0000 (+0000) Subject: Avoid UB when creating empty atoms. NFC. X-Git-Tag: llvmorg-3.9.0-rc1~11084 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b29ecbd4e9149c474a6ed3fe9fb4c30f3dcbbe66;p=platform%2Fupstream%2Fllvm.git 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. llvm-svn: 264234 --- diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp index aa3b042..96070ba 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp @@ -334,6 +334,8 @@ struct MappingTraits
{ NormalizedFile *file = info->_normalizeMachOFile; assert(file != nullptr); size_t size = _normalizedContent.size(); + if (!size) + return ArrayRef(); uint8_t *bytes = file->ownedAllocations.Allocate(size); std::copy(_normalizedContent.begin(), _normalizedContent.end(), bytes); return makeArrayRef(bytes, size);