Fix UBSan bot by not passing NULL into memcpy src.
authorIvan Krasin <krasin@chromium.org>
Wed, 31 Aug 2016 17:23:05 +0000 (17:23 +0000)
committerIvan Krasin <krasin@chromium.org>
Wed, 31 Aug 2016 17:23:05 +0000 (17:23 +0000)
Summary:
UBSan complains like the following:
tools/lld/COFF/Writer.cpp:97:15: runtime error: null pointer passed as argument 2, which is declared to never be null

The reason is that the vector could be empty.

Reviewers: rsmith

Subscribers: Eugene.Zelenko, kcc

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

llvm-svn: 280259

lld/COFF/Writer.cpp

index 6c3a7bd..4e66076 100644 (file)
@@ -93,7 +93,8 @@ class CVDebugRecordChunk : public Chunk {
 
     // variable sized field (PDB Path)
     auto *P = reinterpret_cast<char *>(B + OutputSectionOff + sizeof(*R));
-    memcpy(P, Config->PDBPath.data(), Config->PDBPath.size());
+    if (!Config->PDBPath.empty())
+      memcpy(P, Config->PDBPath.data(), Config->PDBPath.size());
     P[Config->PDBPath.size()] = '\0';
   }
 };