From 683b7ae1e2215ee43d5ba3ae990bfe68b4463c2a Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Mon, 29 Nov 2021 19:50:40 +0330 Subject: [PATCH] fix(Core/Entities): add missing nul pointer checks in HandleProcTrigger Spell (#9303) --- src/server/game/Entities/Unit/Unit.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index add68ffc3..a6bca4313 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -8938,7 +8938,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; } @@ -9214,7 +9214,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 @@ -9249,13 +9249,17 @@ 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;