[clang] c1394af - Don't call memcpy(p, 0, 0).

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 13 00:51:46 PST 2020


Author: Richard Smith
Date: 2020-02-13T00:51:12-08:00
New Revision: c1394afb8df6445b46f42546588f59668bd39ac6

URL: https://github.com/llvm/llvm-project/commit/c1394afb8df6445b46f42546588f59668bd39ac6
DIFF: https://github.com/llvm/llvm-project/commit/c1394afb8df6445b46f42546588f59668bd39ac6.diff

LOG: Don't call memcpy(p, 0, 0).

Found by UBSan, reported by Kostya. Thanks!

Added: 
    

Modified: 
    clang/lib/AST/NestedNameSpecifier.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/AST/NestedNameSpecifier.cpp b/clang/lib/AST/NestedNameSpecifier.cpp
index 81130512bfe1..06008b2f32ac 100644
--- a/clang/lib/AST/NestedNameSpecifier.cpp
+++ b/clang/lib/AST/NestedNameSpecifier.cpp
@@ -482,9 +482,11 @@ static void Append(char *Start, char *End, char *&Buffer, unsigned &BufferSize,
         (unsigned)(BufferCapacity ? BufferCapacity * 2 : sizeof(void *) * 2),
         (unsigned)(BufferSize + (End - Start)));
     char *NewBuffer = static_cast<char *>(llvm::safe_malloc(NewCapacity));
-    memcpy(NewBuffer, Buffer, BufferSize);
-    if (BufferCapacity)
-      free(Buffer);
+    if (Buffer) {
+      memcpy(NewBuffer, Buffer, BufferSize);
+      if (BufferCapacity)
+        free(Buffer);
+    }
     Buffer = NewBuffer;
     BufferCapacity = NewCapacity;
   }


        


More information about the cfe-commits mailing list