aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Instances/InstanceScript.cpp
diff options
context:
space:
mode:
authorroc13x <roc13x@gmail.com>2017-08-20 18:27:40 -0600
committerShauren <shauren.trinity@gmail.com>2024-07-13 11:58:29 +0200
commitc9ff1d7e40bbc419465fcd3fbefc9d7365539a31 (patch)
tree16d3e5cbe0a99313906242b96560a1bd6d69bfa5 /src/server/game/Instances/InstanceScript.cpp
parent46f01f97fb965932ea0acce3a3ac73b240b8b4d1 (diff)
Core/Instances: Prevent possible minion crash
(cherry picked from commit 87d1d72d095edf924176e22ae74bec1d0bd169e2)
Diffstat (limited to 'src/server/game/Instances/InstanceScript.cpp')
-rw-r--r--src/server/game/Instances/InstanceScript.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index e6e8450c191..1435960d6e4 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -374,7 +374,8 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state)
if (GameObject* door = instance->GetGameObject(*i))
UpdateDoorState(door);
- for (GuidSet::iterator i = bossInfo->minion.begin(); i != bossInfo->minion.end(); ++i)
+ GuidSet minions = bossInfo->minion; // Copy to prevent iterator invalidation (minion might be unsummoned in UpdateMinionState)
+ for (GuidSet::iterator i = minions.begin(); i != minions.end(); ++i)
if (Creature* minion = instance->GetCreature(*i))
UpdateMinionState(minion, state);