aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorForesterDev <forester.manv@gmail.com>2016-07-19 12:46:30 +0400
committerShauren <shauren.trinity@gmail.com>2016-07-19 10:46:30 +0200
commit22c4e87ebbf22ad1adc8b66a96ecad7b5b44231b (patch)
treee203abb549dc7b971bc164026f13137915706958 /src
parentd57c177d0ba8399925cc86d5f8904df2aa5635b4 (diff)
Core/Entities: add missing null pointer checks in HandleProcTriggerSpell. CID 1356245 (#17629)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 75458eae12d..788ee41ddd5 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -7872,7 +7872,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 53232:
{
// This effect only from Rapid Fire (ability cast)
- if (!(procSpell->SpellFamilyFlags[0] & 0x20))
+ if (!procSpell || !(procSpell->SpellFamilyFlags[0] & 0x20))
return false;
break;
}
@@ -7890,7 +7890,9 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 15337: // Improved Spirit Tap (Rank 1)
case 15338: // Improved Spirit Tap (Rank 2)
{
- ASSERT(procSpell);
+ if (!procSpell)
+ return false;
+
if (procSpell->SpellFamilyFlags[0] & 0x800000)
if ((procSpell->Id != 58381) || !roll_chance_i(50))
return false;
@@ -8066,7 +8068,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
// Astral Shift
case 52179:
{
- if (procSpell == 0 || !(procEx & (PROC_EX_NORMAL_HIT|PROC_EX_CRITICAL_HIT)) || this == victim)
+ if (!procSpell || !(procEx & (PROC_EX_NORMAL_HIT|PROC_EX_CRITICAL_HIT)) || this == victim)
return false;
// Need stun, fear or silence mechanic
@@ -8118,13 +8120,15 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 65081:
{
// Proc only from PW:S cast
- if (!(procSpell->SpellFamilyFlags[0] & 0x00000001))
+ if (!procSpell || !(procSpell->SpellFamilyFlags[0] & 0x00000001))
return false;
break;
}
// Culling the Herd
case 70893:
{
+ if (!procSpell)
+ return false;
// check if we're doing a critical hit
if (!(procSpell->SpellFamilyFlags[1] & 0x10000000) && (procEx != PROC_EX_CRITICAL_HIT))
return false;