Codechange: address CodeQL issue "Multiplication result converted to larger type" (#10306)
Most are very unlikely to ever be triggered in our codebase; two stand out: linkgraph and money cheat. Those, potentially, could wrap earlier than expected.
This commit is contained in:
@@ -236,7 +236,7 @@ static bool ResizeSpriteIn(SpriteLoader::Sprite *sprite, ZoomLevel src, ZoomLeve
|
||||
sprite[tgt].y_offs = sprite[src].y_offs * scaled_1;
|
||||
sprite[tgt].colours = sprite[src].colours;
|
||||
|
||||
sprite[tgt].AllocateData(tgt, sprite[tgt].width * sprite[tgt].height);
|
||||
sprite[tgt].AllocateData(tgt, static_cast<size_t>(sprite[tgt].width) * sprite[tgt].height);
|
||||
|
||||
SpriteLoader::CommonPixel *dst = sprite[tgt].data;
|
||||
for (int y = 0; y < sprite[tgt].height; y++) {
|
||||
@@ -259,7 +259,7 @@ static void ResizeSpriteOut(SpriteLoader::Sprite *sprite, ZoomLevel zoom)
|
||||
sprite[zoom].y_offs = UnScaleByZoom(sprite[ZOOM_LVL_NORMAL].y_offs, zoom);
|
||||
sprite[zoom].colours = sprite[ZOOM_LVL_NORMAL].colours;
|
||||
|
||||
sprite[zoom].AllocateData(zoom, sprite[zoom].height * sprite[zoom].width);
|
||||
sprite[zoom].AllocateData(zoom, static_cast<size_t>(sprite[zoom].height) * sprite[zoom].width);
|
||||
|
||||
SpriteLoader::CommonPixel *dst = sprite[zoom].data;
|
||||
const SpriteLoader::CommonPixel *src = sprite[zoom - 1].data;
|
||||
@@ -290,9 +290,10 @@ static bool PadSingleSprite(SpriteLoader::Sprite *sprite, ZoomLevel zoom, uint p
|
||||
if (width > UINT16_MAX || height > UINT16_MAX) return false;
|
||||
|
||||
/* Copy source data and reallocate sprite memory. */
|
||||
SpriteLoader::CommonPixel *src_data = MallocT<SpriteLoader::CommonPixel>(sprite->width * sprite->height);
|
||||
MemCpyT(src_data, sprite->data, sprite->width * sprite->height);
|
||||
sprite->AllocateData(zoom, width * height);
|
||||
size_t sprite_size = static_cast<size_t>(sprite->width) * sprite->height;
|
||||
SpriteLoader::CommonPixel *src_data = MallocT<SpriteLoader::CommonPixel>(sprite_size);
|
||||
MemCpyT(src_data, sprite->data, sprite_size);
|
||||
sprite->AllocateData(zoom, static_cast<size_t>(width) * height);
|
||||
|
||||
/* Copy with padding to destination. */
|
||||
SpriteLoader::CommonPixel *src = src_data;
|
||||
|
Reference in New Issue
Block a user