diff --git a/code/AssetLib/glTF2/glTF2Asset.inl b/code/AssetLib/glTF2/glTF2Asset.inl index e0a505297..ffe528757 100644 --- a/code/AssetLib/glTF2/glTF2Asset.inl +++ b/code/AssetLib/glTF2/glTF2Asset.inl @@ -809,6 +809,11 @@ inline void Accessor::Sparse::PatchData(unsigned int elementSize) { } offset *= elementSize; + + if (offset + elementSize > data.size()) { + throw DeadlyImportError("Invalid sparse accessor. Byte offset for patching points outside allocated memory."); + } + std::memcpy(data.data() + offset, pValues, elementSize); pValues += elementSize;