|
@@ -1036,10 +1036,10 @@ size_t Accessor::ExtractData(T *&outData, const std::vector<unsigned int> *remap
|
|
outData = new T[usedCount];
|
|
outData = new T[usedCount];
|
|
|
|
|
|
if (remappingIndices != nullptr) {
|
|
if (remappingIndices != nullptr) {
|
|
- const unsigned int maxIndex = static_cast<unsigned int>(maxSize / stride - 1);
|
|
|
|
|
|
+ const unsigned int maxIndexCount = static_cast<unsigned int>(maxSize / stride);
|
|
for (size_t i = 0; i < usedCount; ++i) {
|
|
for (size_t i = 0; i < usedCount; ++i) {
|
|
size_t srcIdx = (*remappingIndices)[i];
|
|
size_t srcIdx = (*remappingIndices)[i];
|
|
- if (srcIdx > maxIndex) {
|
|
|
|
|
|
+ if (srcIdx >= maxIndexCount) {
|
|
throw DeadlyImportError("GLTF: index*stride ", (srcIdx * stride), " > maxSize ", maxSize, " in ", getContextForErrorMessages(id, name));
|
|
throw DeadlyImportError("GLTF: index*stride ", (srcIdx * stride), " > maxSize ", maxSize, " in ", getContextForErrorMessages(id, name));
|
|
}
|
|
}
|
|
memcpy(outData + i, data + srcIdx * stride, elemSize);
|
|
memcpy(outData + i, data + srcIdx * stride, elemSize);
|