aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGiacomo Pozzoni <giacomopoz@gmail.com>2019-01-15 15:37:12 +0100
committerGiacomo Pozzoni <giacomopoz@gmail.com>2019-01-15 15:37:12 +0100
commit6859dfa2d157f0d174004a00a9d047d6eb38f9a1 (patch)
tree76d74e0c2a07d0366fad804eccb2d039b9285781 /src
parentd755ef1e8b303d285b82c37f9470b3080f641dd3 (diff)
Core/Quest: Fix crash in GetQuestDialogStatus()
Fix possible NULL dereference in GetQuestDialogStatus() Fixes #22516
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 16584677921..6b6ccd358da 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -15925,16 +15925,18 @@ QuestGiverStatus Player::GetQuestDialogStatus(Object* questgiver)
{
case TYPEID_GAMEOBJECT:
{
- if (auto questStatus = questgiver->ToGameObject()->AI()->GetDialogStatus(this))
- return *questStatus;
+ if (auto ai = questgiver->ToGameObject()->AI())
+ if (auto questStatus = ai->GetDialogStatus(this))
+ return *questStatus;
qr = sObjectMgr->GetGOQuestRelationBounds(questgiver->GetEntry());
qir = sObjectMgr->GetGOQuestInvolvedRelationBounds(questgiver->GetEntry());
break;
}
case TYPEID_UNIT:
{
- if (auto questStatus = questgiver->ToCreature()->AI()->GetDialogStatus(this))
- return *questStatus;
+ if (auto ai = questgiver->ToCreature()->AI())
+ if (auto questStatus = ai->GetDialogStatus(this))
+ return *questStatus;
qr = sObjectMgr->GetCreatureQuestRelationBounds(questgiver->GetEntry());
qir = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(questgiver->GetEntry());
break;