Add overfolow check for invalid data.

- closes https://github.com/assimp/assimp/issues/3422
This commit is contained in:
Kim Kulling
2022-11-22 10:50:52 +01:00
committed by GitHub
parent b3daec65a0
commit 5689ac7869

View File

@@ -404,8 +404,13 @@ void MDLImporter::InternReadFile_Quake1() {
this->CreateTextureARGB8_3DGS_MDL3(szCurrent + iNumImages * sizeof(float));
}
// go to the end of the skin section / the beginning of the next skin
szCurrent += pcHeader->skinheight * pcHeader->skinwidth +
sizeof(float) * iNumImages;
bool overflow = false;
if ((pcHeader->skinheight > INT_MAX / pcHeader->skinwidth) || (pcHeader->skinwidth > INT_MAX / pcHeader->skinheight)){
overflow = true;
}
if (!overflow) {
szCurrent += pcHeader->skinheight * pcHeader->skinwidth +sizeof(float) * iNumImages;
}
}
} else {
szCurrent += sizeof(uint32_t);