Fix crash when loading invalid vmap data. Author @jackpoz

Fix array overflow when loading Models from vmap tiles with wrong/outdated/bad data.
This commit is contained in:
Antz 2016-02-24 11:51:37 +00:00
parent e971e46477
commit 474fa45ebb

View File

@ -393,13 +393,11 @@ namespace VMAP
size_t fileRead = fread(&referencedVal, sizeof(uint32), 1, tf); size_t fileRead = fread(&referencedVal, sizeof(uint32), 1, tf);
if (!iLoadedSpawns.count(referencedVal) || fileRead <= 0) if (!iLoadedSpawns.count(referencedVal) || fileRead <= 0)
{ {
#ifdef VMAP_DEBUG
if (referencedVal > iNTreeValues) if (referencedVal > iNTreeValues)
{ {
DEBUG_LOG("invalid tree element! (%u/%u)", referencedVal, iNTreeValues); ERROR_LOG("invalid tree element! (%u/%u)", referencedVal, iNTreeValues);
continue; continue;
} }
#endif
iTreeValues[referencedVal] = ModelInstance(spawn, model); iTreeValues[referencedVal] = ModelInstance(spawn, model);
iLoadedSpawns[referencedVal] = 1; iLoadedSpawns[referencedVal] = 1;
} }