diff options
author | Nayd <dnpd.dd@gmail.com> | 2015-01-31 20:12:57 +0000 |
---|---|---|
committer | Nayd <dnpd.dd@gmail.com> | 2015-01-31 20:12:57 +0000 |
commit | c87de730fae0914a5d0741365066007a46f9a469 (patch) | |
tree | 5d1499f0aeac4736a0c4f5c2961c478adad49812 | |
parent | 61eb65b073c1656a1c42debdfe0d9edd5be0bbe2 (diff) |
Core/Quests: Fixed WPE exploit that allowed to accept any quest
(cherry picked from commit 6b10271891d2cbafbad1446051fcf3866ea728e3)
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index d6d7e3b9876..b6157d6eb94 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -458,6 +458,12 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recvData) if (!_player->IsInSameRaidWith(originalPlayer)) return; + if (!originalPlayer->CanShareQuest(questId)) + return; + + if (!_player->CanTakeQuest(quest, true)) + return; + if (_player->CanAddQuest(quest, true)) _player->AddQuestAndCheckCompletion(quest, NULL); // NULL, this prevent DB script from duplicate running |