diff --git a/code/AssetLib/glTF2/glTF2Asset.inl b/code/AssetLib/glTF2/glTF2Asset.inl index ffe528757..f35a47efa 100644 --- a/code/AssetLib/glTF2/glTF2Asset.inl +++ b/code/AssetLib/glTF2/glTF2Asset.inl @@ -600,6 +600,10 @@ inline void Buffer::Read(Value &obj, Asset &r) { inline bool Buffer::LoadFromStream(IOStream &stream, size_t length, size_t baseOffset) { byteLength = length ? length : stream.FileSize(); + if (byteLength > stream.FileSize()) { + throw DeadlyImportError("GLTF: Invalid byteLength exceeds size of actual data."); + } + if (baseOffset) { stream.Seek(baseOffset, aiOrigin_SET); }