diff options
author | Kiddie <kiddie@trinitycore.contrib> | 2012-09-07 14:17:17 +0200 |
---|---|---|
committer | kaelima <kaelima@live.se> | 2012-09-07 14:17:17 +0200 |
commit | c76a10d979fa19f10bd7dc1f6b12d88593364ed1 (patch) | |
tree | 880ea3e93bcfa202758fc15975be11427a3f6c55 /src/server/game/Handlers/SkillHandler.cpp | |
parent | d0f4526d71d3f5febc99456225dd7ca402bdc5d9 (diff) |
Core/SkillHandler: Fix exploit when sending modified values in CMSG_UNLEARN_SKILL
Closes #7663
Diffstat (limited to 'src/server/game/Handlers/SkillHandler.cpp')
-rwxr-xr-x | src/server/game/Handlers/SkillHandler.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Handlers/SkillHandler.cpp b/src/server/game/Handlers/SkillHandler.cpp index f9731ba85db..8872816f87d 100755 --- a/src/server/game/Handlers/SkillHandler.cpp +++ b/src/server/game/Handlers/SkillHandler.cpp @@ -84,9 +84,13 @@ void WorldSession::HandleTalentWipeConfirmOpcode(WorldPacket & recv_data) unit->CastSpell(_player, 14867, true); //spell: "Untalent Visual Effect" } -void WorldSession::HandleUnlearnSkillOpcode(WorldPacket & recv_data) +void WorldSession::HandleUnlearnSkillOpcode(WorldPacket& recvData) { - uint32 skill_id; - recv_data >> skill_id; - GetPlayer()->SetSkill(skill_id, 0, 0, 0); + uint32 skillId; + recvData >> skillId; + + if (!IsPrimaryProfessionSkill(skillId)) + return; + + GetPlayer()->SetSkill(skillId, 0, 0, 0); } |