Fix memory corruption when 3DS file has more smoothing groups than faces
parent
c5d048a98a
commit
2f0675ac53
|
@ -948,6 +948,9 @@ void Discreet3DSImporter::ParseFaceChunk()
|
|||
// This is the list of smoothing groups - a bitfield for every face.
|
||||
// Up to 32 smoothing groups assigned to a single face.
|
||||
unsigned int num = chunkSize/4, m = 0;
|
||||
if (num > mMesh.mFaces.size()) {
|
||||
throw DeadlyImportError("3DS: More smoothing groups than faces");
|
||||
}
|
||||
for (std::vector<D3DS::Face>::iterator i = mMesh.mFaces.begin(); m != num;++i, ++m) {
|
||||
// nth bit is set for nth smoothing group
|
||||
(*i).iSmoothGroup = stream->GetI4();
|
||||
|
|
Loading…
Reference in New Issue