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;
   }


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to