[lld] r330490 - Fix nullptr passed to memcpy in lld/COFF/Chunks.cpp

Bob Haarman via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 20 15:16:09 PDT 2018


Author: inglorion
Date: Fri Apr 20 15:16:09 2018
New Revision: 330490

URL: http://llvm.org/viewvc/llvm-project?rev=330490&view=rev
Log:
Fix nullptr passed to memcpy in lld/COFF/Chunks.cpp

Summary:
ubsan found that we sometimes pass nullptr to memcpy in
SectionChunk::writeTo(). This change adds a check that avoids that.

Reviewers: ruiu

Reviewed By: ruiu

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D45789

Modified:
    lld/trunk/COFF/Chunks.cpp

Modified: lld/trunk/COFF/Chunks.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Chunks.cpp?rev=330490&r1=330489&r2=330490&view=diff
==============================================================================
--- lld/trunk/COFF/Chunks.cpp (original)
+++ lld/trunk/COFF/Chunks.cpp Fri Apr 20 15:16:09 2018
@@ -271,7 +271,8 @@ void SectionChunk::writeTo(uint8_t *Buf)
     return;
   // Copy section contents from source object file to output file.
   ArrayRef<uint8_t> A = getContents();
-  memcpy(Buf + OutputSectionOff, A.data(), A.size());
+  if (!A.empty())
+    memcpy(Buf + OutputSectionOff, A.data(), A.size());
 
   // Apply relocations.
   size_t InputSize = getSize();




More information about the llvm-commits mailing list