From 52d07bbfaef043d8286f66cf2d495ac50fa592de Mon Sep 17 00:00:00 2001 From: Anton Popovichenko Date: Tue, 5 Sep 2023 11:36:34 +0200 Subject: [PATCH] fix(Core/InstanceMap): Stop using deleted player in RemovePlayerFromMap (#17069) --- src/server/game/Maps/Map.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 1059219b9..5f6a1418e 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3034,7 +3034,10 @@ void InstanceMap::RemovePlayerFromMap(Player* player, bool remove) //if (!m_unloadTimer && m_mapRefMgr.getSize() == 1) // m_unloadTimer = m_unloadWhenEmpty ? MIN_UNLOAD_DELAY : std::max(sWorld->getIntConfig(CONFIG_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY); Map::RemovePlayerFromMap(player, remove); - player->SetPendingBind(0, 0); + + // If remove == true - player already deleted. + if (!remove) + player->SetPendingBind(0, 0); } void InstanceMap::AfterPlayerUnlinkFromMap()