diff options
| author | ForesterDev <forester.manv@gmail.com> | 2016-07-19 12:46:30 +0400 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-07-19 10:46:30 +0200 |
| commit | 22c4e87ebbf22ad1adc8b66a96ecad7b5b44231b (patch) | |
| tree | e203abb549dc7b971bc164026f13137915706958 /src | |
| parent | d57c177d0ba8399925cc86d5f8904df2aa5635b4 (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.cpp | 12 |
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; |
