From f817b06c18dbded20fa01a0e38b81b4eefa7c1a6 Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 25 Nov 2013 13:06:33 +0000 Subject: [PATCH] (svn r26103) -Fix: prevent odd overflows due to integer promotion --- src/blitter/32bpp_simple.cpp | 2 +- src/blitter/8bpp_simple.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/blitter/32bpp_simple.cpp b/src/blitter/32bpp_simple.cpp index 539d26ff02..4a9036a134 100644 --- a/src/blitter/32bpp_simple.cpp +++ b/src/blitter/32bpp_simple.cpp @@ -95,7 +95,7 @@ void Blitter_32bppSimple::DrawColourMappingRect(void *dst, int width, int height Sprite *Blitter_32bppSimple::Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator) { Blitter_32bppSimple::Pixel *dst; - Sprite *dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + sprite->height * sprite->width * sizeof(*dst)); + Sprite *dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + (size_t)sprite->height * (size_t)sprite->width * sizeof(*dst)); dest_sprite->height = sprite->height; dest_sprite->width = sprite->width; diff --git a/src/blitter/8bpp_simple.cpp b/src/blitter/8bpp_simple.cpp index 1d405e0eea..d1bd316bb2 100644 --- a/src/blitter/8bpp_simple.cpp +++ b/src/blitter/8bpp_simple.cpp @@ -58,7 +58,7 @@ void Blitter_8bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoom Sprite *Blitter_8bppSimple::Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator) { Sprite *dest_sprite; - dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + sprite->height * sprite->width); + dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + (size_t)sprite->height * (size_t)sprite->width); dest_sprite->height = sprite->height; dest_sprite->width = sprite->width;