Fix Bad-cast to Assimp::D3DS::Material from invalid vptr in Assimp::ASE::Parser::ParseLV2MaterialBlock
parent
4180b1fd08
commit
86aecf395e
|
@ -479,6 +479,11 @@ void Parser::ParseLV1MaterialListBlock() {
|
||||||
if (TokenMatch(filePtr, "MATERIAL_COUNT", 14)) {
|
if (TokenMatch(filePtr, "MATERIAL_COUNT", 14)) {
|
||||||
ParseLV4MeshLong(iMaterialCount);
|
ParseLV4MeshLong(iMaterialCount);
|
||||||
|
|
||||||
|
if (UINT_MAX - iOldMaterialCount < iMaterialCount) {
|
||||||
|
LogWarning("Out of range: material index is too large");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// now allocate enough storage to hold all materials
|
// now allocate enough storage to hold all materials
|
||||||
m_vMaterials.resize(iOldMaterialCount + iMaterialCount, Material("INVALID"));
|
m_vMaterials.resize(iOldMaterialCount + iMaterialCount, Material("INVALID"));
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue