From bf3470c1610458eae0882b74903760a6f8231856 Mon Sep 17 00:00:00 2001 From: Daniil Nikolenko Date: Thu, 8 Jul 2021 23:40:53 +0300 Subject: [PATCH] Fix UB in CreateVectorOfStructs in case of an empty vector: avoid calling memcpy in this case (#6726) --- include/flatbuffers/flatbuffers.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h index c073f3b05..0f57f9b0e 100644 --- a/include/flatbuffers/flatbuffers.h +++ b/include/flatbuffers/flatbuffers.h @@ -1914,7 +1914,9 @@ class FlatBufferBuilder { template Offset> CreateVectorOfStructs(const T *v, size_t len) { StartVector(len * sizeof(T) / AlignOf(), AlignOf()); - PushBytes(reinterpret_cast(v), sizeof(T) * len); + if (len > 0) { + PushBytes(reinterpret_cast(v), sizeof(T) * len); + } return Offset>(EndVector(len)); }