From: Vitaly Buka Date: Mon, 14 Nov 2016 22:05:19 +0000 (+0000) Subject: Don't pass nullptr into memcpy X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5ffd1d01ccd10157a3ac3c3cc20064a8c7acf3f3;p=llvm Don't pass nullptr into memcpy Summary: It's undefined according UBSAN. Not sure which CL caused test failures, but seems writeBytes for empty buffer should be OK. Reviewers: rnk, zturner Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D26638 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286896 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/DebugInfo/MSF/ByteStream.h b/include/llvm/DebugInfo/MSF/ByteStream.h index 34361ef9d93..d8c1e6dd6cc 100644 --- a/include/llvm/DebugInfo/MSF/ByteStream.h +++ b/include/llvm/DebugInfo/MSF/ByteStream.h @@ -91,6 +91,9 @@ public: uint32_t getLength() const override { return ImmutableStream.getLength(); } Error writeBytes(uint32_t Offset, ArrayRef Buffer) const override { + if (Buffer.empty()) + return Error::success(); + if (Data.size() < Buffer.size()) return make_error(msf_error_code::insufficient_buffer); if (Offset > Buffer.size() - Data.size())