diff options
| author | Rye <rye@alchemyviewer.org> | 2025-08-28 00:53:15 -0400 | 
|---|---|---|
| committer | Rye <rye@alchemyviewer.org> | 2025-08-28 00:53:15 -0400 | 
| commit | 96ff5f8e70396b53168682c4a1addb9a61d45e7c (patch) | |
| tree | c874c67c68f2412c0e1cc630ffbb6bf3819c229c /indra/newview/gltf/buffer_util.h | |
| parent | 77d71dec863e28323bcafb1573cd1ecd54fe3049 (diff) | |
| parent | b2468342072f1e8b0fa2029d01918f74cdd6d4a8 (diff) | |
Merge branch 'develop' of github.com:secondlife/viewer into rye/infinitemac
Diffstat (limited to 'indra/newview/gltf/buffer_util.h')
| -rw-r--r-- | indra/newview/gltf/buffer_util.h | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/newview/gltf/buffer_util.h b/indra/newview/gltf/buffer_util.h index be36c5e90b..c231443a9e 100644 --- a/indra/newview/gltf/buffer_util.h +++ b/indra/newview/gltf/buffer_util.h @@ -147,6 +147,12 @@ namespace LL          }          template<> +        inline void copyVec3<F32, LLVector2>(F32* src, LLVector2& dst) +        { +            dst.set(src[0], src[1]); +        } + +        template<>          inline void copyVec3<F32, vec3>(F32* src, vec3& dst)          {              dst = vec3(src[0], src[1], src[2]); @@ -375,12 +381,18 @@ namespace LL          template<class T>          inline void copy(Asset& asset, Accessor& accessor, LLStrider<T>& dst)          { -            if (accessor.mBufferView == INVALID_INDEX) +            if (accessor.mBufferView == INVALID_INDEX +                || accessor.mBufferView >= asset.mBufferViews.size())              {                  LL_WARNS("GLTF") << "Invalid buffer" << LL_ENDL;                  return;              }              const BufferView& bufferView = asset.mBufferViews[accessor.mBufferView]; +            if (bufferView.mBuffer >= asset.mBuffers.size()) +            { +                LL_WARNS("GLTF") << "Invalid buffer view" << LL_ENDL; +                return; +            }              const Buffer& buffer = asset.mBuffers[bufferView.mBuffer];              const U8* src = buffer.mData.data() + bufferView.mByteOffset + accessor.mByteOffset;  | 
