aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/screen.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2009-06-08 17:47:37 +0000
committerJohannes Schickel2009-06-08 17:47:37 +0000
commitaef8d2b04bfc2f3e28a5b58e55a7a27fa9da74ee (patch)
tree8f8bcafef02fda0e8a6b53dc7ffbf0f9d55f1d81 /engines/kyra/screen.cpp
parent2c55c49534f79eb0f191f67511ab96ad8339d918 (diff)
downloadscummvm-rg350-aef8d2b04bfc2f3e28a5b58e55a7a27fa9da74ee.tar.gz
scummvm-rg350-aef8d2b04bfc2f3e28a5b58e55a7a27fa9da74ee.tar.bz2
scummvm-rg350-aef8d2b04bfc2f3e28a5b58e55a7a27fa9da74ee.zip
Fix out of bounds memory access in Screen::drawShape.
svn-id: r41379
Diffstat (limited to 'engines/kyra/screen.cpp')
-rw-r--r--engines/kyra/screen.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index 2b3a9366e6..1a28f9b48f 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -1409,6 +1409,9 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
_dsOffscreenLeft /= _dsScaleW;
}
+ if (shapeHeight <= 0 || shpWidthScaled1 <= 0)
+ return;
+
if (pageNum == 0 || pageNum == 1)
addDirtyRect(x, y, shpWidthScaled1, shapeHeight);
clearOverlayRect(pageNum, x, y, shpWidthScaled1, shapeHeight);