diff --git a/code/OgreImporter.cpp b/code/OgreImporter.cpp index f0a8c21e1..66883ae01 100644 --- a/code/OgreImporter.cpp +++ b/code/OgreImporter.cpp @@ -260,7 +260,7 @@ void OgreImporter::ReadSubMesh(SubMesh &theSubMesh, XmlReader *Reader) vector UniquePositions(UniqueVertexCount); vector UniqueNormals(UniqueVertexCount); vector UniqueUvs(UniqueVertexCount); - vector< vector > UniqueWeights(UniqueVertexCount); + vector< vector > UniqueWeights((theSubMesh.Weights.size() ? UniqueVertexCount : 0)); for(unsigned int i=0; imNumBones=aiBones.size(); - NewAiMesh->mBones=new aiBone* [aiBones.size()]; - memcpy(NewAiMesh->mBones, &(aiBones[0]), aiBones.size()*sizeof(aiBone*)); + + // mBones must be NULL if mNumBones is non 0 or the validation fails. + if (aiBones.size()) { + NewAiMesh->mBones=new aiBone* [aiBones.size()]; + memcpy(NewAiMesh->mBones, &(aiBones[0]), aiBones.size()*sizeof(aiBone*)); + } //______________________________________________________________________________________________________