Fix UB in ProjectileInfo.cpp

This commit is contained in:
shfil 2020-12-31 16:33:34 +01:00 committed by GitHub
parent 1a8a1c91cb
commit 9938d04ca7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -128,8 +128,12 @@ CProjectileInfo::AddProjectile(CEntity *entity, eWeaponType weapon, CVector pos,
} }
int i = 0; int i = 0;
#ifdef FIX_BUGS
while (i < ARRAY_SIZE(gaProjectileInfo) && gaProjectileInfo[i].m_bInUse) i++;
#else
// array overrun is UB
while (gaProjectileInfo[i].m_bInUse && i < ARRAY_SIZE(gaProjectileInfo)) i++; while (gaProjectileInfo[i].m_bInUse && i < ARRAY_SIZE(gaProjectileInfo)) i++;
#endif
if (i == ARRAY_SIZE(gaProjectileInfo)) if (i == ARRAY_SIZE(gaProjectileInfo))
return false; return false;