From ef894c0966df4e9e3c7f2e3b4a1181fd4ebc4dfc Mon Sep 17 00:00:00 2001 From: lawnjelly Date: Sun, 8 Aug 2021 15:00:39 +0100 Subject: [PATCH] Portals - fix crash when logging link room names The checking for link room IDs was checking for less than size(), but was not correctly checking for -1, and therefore reading outside the array range. This PR fixes this. --- scene/3d/room_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scene/3d/room_manager.cpp b/scene/3d/room_manager.cpp index e3055846340..493df8b9d22 100644 --- a/scene/3d/room_manager.cpp +++ b/scene/3d/room_manager.cpp @@ -848,7 +848,7 @@ void RoomManager::_third_pass_rooms(const LocalVector &p_portals) { int linked_room_id = (portal_links_out) ? portal._linkedroom_ID[1] : portal._linkedroom_ID[0]; // this shouldn't be out of range, but just in case - if (linked_room_id < _rooms.size()) { + if ((linked_room_id >= 0) && (linked_room_id < _rooms.size())) { Room *linked_room = _rooms[linked_room_id]; String portal_link_room_name = _find_name_before(linked_room, "-room", true);