diff options
author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-01-15 15:37:12 +0100 |
---|---|---|
committer | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-01-15 15:37:12 +0100 |
commit | 6859dfa2d157f0d174004a00a9d047d6eb38f9a1 (patch) | |
tree | 76d74e0c2a07d0366fad804eccb2d039b9285781 /src | |
parent | d755ef1e8b303d285b82c37f9470b3080f641dd3 (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.cpp | 10 |
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; |