From 6859dfa2d157f0d174004a00a9d047d6eb38f9a1 Mon Sep 17 00:00:00 2001 From: Giacomo Pozzoni Date: Tue, 15 Jan 2019 15:37:12 +0100 Subject: Core/Quest: Fix crash in GetQuestDialogStatus() Fix possible NULL dereference in GetQuestDialogStatus() Fixes #22516 --- src/server/game/Entities/Player/Player.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') 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; -- cgit v1.2.3