mirror of
https://github.com/google/flatbuffers.git
synced 2026-07-03 20:04:13 +00:00
Fix UB in CreateVectorOfStructs in case of an empty vector: avoid calling memcpy in this case (#6726)
This commit is contained in:
@@ -1914,7 +1914,9 @@ class FlatBufferBuilder {
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
Offset<Vector<const T *>> CreateVectorOfStructs(const T *v, size_t len) {
|
Offset<Vector<const T *>> CreateVectorOfStructs(const T *v, size_t len) {
|
||||||
StartVector(len * sizeof(T) / AlignOf<T>(), AlignOf<T>());
|
StartVector(len * sizeof(T) / AlignOf<T>(), AlignOf<T>());
|
||||||
PushBytes(reinterpret_cast<const uint8_t *>(v), sizeof(T) * len);
|
if (len > 0) {
|
||||||
|
PushBytes(reinterpret_cast<const uint8_t *>(v), sizeof(T) * len);
|
||||||
|
}
|
||||||
return Offset<Vector<const T *>>(EndVector(len));
|
return Offset<Vector<const T *>>(EndVector(len));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user