aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Kalimdor
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-04-20 00:38:25 +0200
committerjackpoz <giacomopoz@gmail.com>2014-04-20 00:38:25 +0200
commitfb6365ac689419a2e5dd758d4bf70c1a20ff41ff (patch)
tree2fe3bd97242f12395e9a471b753947f037998cf0 /src/server/scripts/Kalimdor
parent8ca63717932ae6db48d74e866e8d379c4f5a5920 (diff)
Core/Misc: Check GetVictim() for NULL before dereferencing it
Add additional NULL checks all around the code before dereferencing GetVictim() result. Keep in mind UpdateVictim() result has nothing to do with GetVictim() result and the caller shouldn't assume anything about GetVictim() based on UpdateVictim().
Diffstat (limited to 'src/server/scripts/Kalimdor')
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp9
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp3
-rw-r--r--src/server/scripts/Kalimdor/zone_tanaris.cpp2
3 files changed, 9 insertions, 5 deletions
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
index 0af42f5af20..04e5f031589 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
@@ -156,9 +156,12 @@ class boss_ayamiss : public CreatureScript
_phase = PHASE_GROUND;
SetCombatMovement(true);
me->SetCanFly(false);
- Position VictimPos;
- me->EnsureVictim()->GetPosition(&VictimPos);
- me->GetMotionMaster()->MovePoint(POINT_GROUND, VictimPos);
+ if (me->GetVictim())
+ {
+ Position VictimPos;
+ me->EnsureVictim()->GetPosition(&VictimPos);
+ me->GetMotionMaster()->MovePoint(POINT_GROUND, VictimPos);
+ }
DoResetThreat();
events.ScheduleEvent(EVENT_LASH, urand(5000, 8000));
events.ScheduleEvent(EVENT_TRASH, urand(3000, 6000));
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
index 7038dd0df46..20100dfc5dd 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
@@ -272,7 +272,8 @@ class npc_glob_of_viscidus : public CreatureScript
if (Viscidus->IsAlive() && Viscidus->GetHealthPct() < 5.0f)
{
Viscidus->SetVisible(true);
- Viscidus->EnsureVictim()->Kill(Viscidus);
+ if (Viscidus->GetVictim())
+ Viscidus->EnsureVictim()->Kill(Viscidus);
}
else
{
diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp
index 680caa62883..013e6099457 100644
--- a/src/server/scripts/Kalimdor/zone_tanaris.cpp
+++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp
@@ -123,7 +123,7 @@ public:
{
if (SendItemTimer <= diff)
{
- if (me->EnsureVictim()->GetTypeId() == TYPEID_PLAYER)
+ if (me->GetVictim() && me->EnsureVictim()->GetTypeId() == TYPEID_PLAYER)
SendItem(me->GetVictim());
SendItemTimer = 5000;
} else SendItemTimer -= diff;