From b4ab7c33578dfe35d2d19ea06c2b0d290aa49f59 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 31 Jan 2014 20:22:49 -0500 Subject: VOYEUR: Fix for loading rect resources with invalid rects --- engines/voyeur/files.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/engines/voyeur/files.cpp b/engines/voyeur/files.cpp index 3de0d88621..a2177230c6 100644 --- a/engines/voyeur/files.cpp +++ b/engines/voyeur/files.cpp @@ -705,8 +705,15 @@ RectResource::RectResource(const byte *src, int size) { } for (int i = 0; i < count; ++i, src += 8) { - _entries.push_back(Common::Rect(READ_LE_UINT16(src), READ_LE_UINT16(src + 2), - READ_LE_UINT16(src + 4), READ_LE_UINT16(src + 6))); + int x1 = READ_LE_UINT16(src); + int y1 = READ_LE_UINT16(src + 2); + int x2 = READ_LE_UINT16(src + 4); + int y2 = READ_LE_UINT16(src + 6); + + if (x2 >= x1 && y2 >= y1) + _entries.push_back(Common::Rect(x1, y1, x2, y2)); + else + _entries.push_back(Common::Rect()); } left = _entries[0].left; -- cgit v1.2.3