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

Found by UBSan, reported by Kostya. Thanks!
This commit is contained in:
Richard Smith 2020-02-13 00:35:27 -08:00
parent 2ba4df6c11
commit c1394afb8d
1 changed files with 5 additions and 3 deletions

View File

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