fix: resolve all GitHub CodeQL security/quality alerts

Fix 9 integer-multiplication-cast-to-long warnings across 6 files:
- wmo_renderer.cpp: grid cell count and height variance calculation
- composite_renderer.cpp: overlay tile grid allocation
- vk_texture.cpp: image size calculation (width*height*bpp)
- m2_renderer.cpp: collision grid cell allocation
- character_renderer.cpp: normal map buffer and height variance
- world_entry_callback_handler.cpp: tile reserve count

All fixes cast operands to size_t/double before multiplication to
prevent integer overflow when dimensions are large.
This commit is contained in:
Kelsi 2026-05-05 22:49:21 -07:00
parent d773109b50
commit 67f4097e74
6 changed files with 9 additions and 9 deletions

View file

@ -548,7 +548,7 @@ std::unique_ptr<VkTexture> CharacterRenderer::generateNormalHeightMap(
if (!vkCtx_ || width == 0 || height == 0) return nullptr;
// Use the CPU-only static method, then upload to GPU
std::vector<uint8_t> dummy(width * height * 4);
std::vector<uint8_t> dummy(static_cast<size_t>(width) * static_cast<size_t>(height) * 4);
std::memcpy(dummy.data(), pixels, dummy.size());
auto result = generateNormalHeightMapCPU("", std::move(dummy), width, height);
outVariance = result.variance;
@ -585,7 +585,7 @@ CharacterRenderer::NormalMapResult CharacterRenderer::generateNormalHeightMapCPU
float h = 0.299f * r + 0.587f * g + 0.114f * b;
heightMap[i] = h;
sumH += h;
sumH2 += h * h;
sumH2 += static_cast<double>(h) * static_cast<double>(h);
}
double mean = sumH / totalPixels;
result.variance = static_cast<float>(sumH2 / totalPixels - mean * mean);