From 01d8bbf4089fda39a721bea5f0547a339d5420e3 Mon Sep 17 00:00:00 2001 From: Flugente Date: Wed, 17 Jun 2020 22:22:26 +0000 Subject: [PATCH] Fix: illegal array access if resolution exceeds monitor resolution git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8822 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/DisplayCover.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Tactical/DisplayCover.cpp b/Tactical/DisplayCover.cpp index 4aec35ec1..710775bd3 100644 --- a/Tactical/DisplayCover.cpp +++ b/Tactical/DisplayCover.cpp @@ -423,6 +423,12 @@ void RemoveCoverObjectsFromViewArea() GetScreenXYWorldCell( gsVIEWPORT_END_X, gsVIEWPORT_START_Y, &usTmp, &gsMinCellY ); GetScreenXYWorldCell( gsVIEWPORT_START_X, gsVIEWPORT_END_Y, &usTmp, &gsMaxCellY ); + // Flugente: hey, wouldn't it be cool if we DIDN'T access an array with implausible values? + gsMinCellX = max( 0, gsMinCellX ); + gsMaxCellX = min( COVER_X_CELLS, gsMaxCellX ); + gsMinCellY = max( 0, gsMinCellY ); + gsMaxCellY = min( COVER_Y_CELLS, gsMaxCellY ); + register INT32 ubX, ubY, ubZ; BOOLEAN fChanged = FALSE;