From a29254dda2c94f808b2fc4d91eb845e404dec564 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Rona Date: Wed, 6 Feb 2019 18:13:07 +0100 Subject: SCI: Fix out of bounds issue in getFrameSize If there is no item at all, returns a (0,0,0,0) Rect. --- engines/sci/video/robot_decoder.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'engines/sci') diff --git a/engines/sci/video/robot_decoder.cpp b/engines/sci/video/robot_decoder.cpp index 8a0948d962..a99a15a23c 100644 --- a/engines/sci/video/robot_decoder.cpp +++ b/engines/sci/video/robot_decoder.cpp @@ -1169,6 +1169,12 @@ bool RobotDecoder::readPartialAudioRecordAndSubmit(const int startFrame, const i uint16 RobotDecoder::getFrameSize(Common::Rect &outRect) const { assert(_plane != nullptr); + + if (_screenItemList.size() == 0) { + outRect.clip(0, 0); + return _numFramesTotal; + } + outRect = _screenItemList[0]->getNowSeenRect(*_plane); for (RobotScreenItemList::size_type i = 1; i < _screenItemList.size(); ++i) { ScreenItem &screenItem = *_screenItemList[i]; -- cgit v1.2.3