aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-08-26 08:23:44 -0700
committerShauren <shauren.trinity@gmail.com>2013-08-26 08:23:44 -0700
commit664ed816dfc46a3e6be5fafa8037a8bd93feee5b (patch)
treefad598b672e5ddc41dabdc3271fc3f2bcb4be5f5 /src
parent2050a36b58ba25010bc7a786861f2c3c58aeda18 (diff)
parent2a47b602d7f75e5f712086107581aca967a1cd33 (diff)
Merge pull request #10636 from jackpoz/mindvision_fix
Core/Aura: Fix SPELL_AURA_BIND_SIGHT invalid read
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Maps/Map.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 5ce4c05abb6..27f97ba93d4 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -2114,6 +2114,10 @@ void Map::AddObjectToRemoveList(WorldObject* obj)
void Map::AddObjectToSwitchList(WorldObject* obj, bool on)
{
ASSERT(obj->GetMapId() == GetId() && obj->GetInstanceId() == GetInstanceId());
+ // i_objectsToSwitch is iterated only in Map::RemoveAllObjectsInRemoveList() and it uses
+ // the contained objects only if GetTypeId() == TYPEID_UNIT , so we can return in all other cases
+ if (obj->GetTypeId() != TYPEID_UNIT)
+ return;
std::map<WorldObject*, bool>::iterator itr = i_objectsToSwitch.find(obj);
if (itr == i_objectsToSwitch.end())