aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/bladerunner.cpp
diff options
context:
space:
mode:
authorThanasis Antoniou2019-07-28 14:05:26 +0300
committerThanasis Antoniou2019-07-28 14:06:26 +0300
commit4b482b2d3e32e834eefb4d6af1a175f2b2ac75da (patch)
treeae4983425d7ae2c19796c6966070ce92248b9bfb /engines/bladerunner/bladerunner.cpp
parent6884441f519fa95da54f9ea977c900321ab48701 (diff)
downloadscummvm-rg350-4b482b2d3e32e834eefb4d6af1a175f2b2ac75da.tar.gz
scummvm-rg350-4b482b2d3e32e834eefb4d6af1a175f2b2ac75da.tar.bz2
scummvm-rg350-4b482b2d3e32e834eefb4d6af1a175f2b2ac75da.zip
BLADERUNNER: prevent seg fault in ESPER
Also added CLIP to all getBasePtr() calls where it would seem appropriate/safer to do so
Diffstat (limited to 'engines/bladerunner/bladerunner.cpp')
-rw-r--r--engines/bladerunner/bladerunner.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index e4049830d7..93ffbe0e5e 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -2232,8 +2232,8 @@ Graphics::Surface BladeRunnerEngine::generateThumbnail() const {
for (int x = 0; x < thumbnail.w; ++x) {
uint8 r, g, b;
- uint16 srcPixel = *(const uint16 *)_surfaceFront.getBasePtr(x * 8, y * 8);
- uint16 *dstPixel = (uint16 *)thumbnail.getBasePtr(x, y);
+ uint16 srcPixel = *(const uint16 *)_surfaceFront.getBasePtr(CLIP(x * 8, 0, _surfaceFront.w - 1), CLIP(y * 8, 0, _surfaceFront.h - 1) );
+ uint16 *dstPixel = (uint16 *)thumbnail.getBasePtr(CLIP(x, 0, thumbnail.w - 1), CLIP(y, 0, thumbnail.h - 1));
// Throw away alpha channel as it is not needed
_surfaceFront.format.colorToRGB(srcPixel, r, g, b);