diff options
author | xinef1 <w.szyszko2@gmail.com> | 2016-12-31 20:50:56 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2018-12-09 14:18:42 +0100 |
commit | 0a2876c09199e17728d7ef32f891f9037f536b90 (patch) | |
tree | f91fa3993cf66596db9b9622c4617817850c5292 /src/server/game/Handlers/PetHandler.cpp | |
parent | 95d7a1ff13d2eb23f492501d3042b9a426aae634 (diff) |
Core/Pets: Fixed exploit where warlock can abandon its pet to generate new name (#18606)
(cherry-picked from 8ce5712552df47c6eff45c596b95a8890826d8b4)
Diffstat (limited to 'src/server/game/Handlers/PetHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/PetHandler.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 3b1ff9b7d36..4d91ee2d11b 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -592,13 +592,11 @@ void WorldSession::HandlePetAbandon(WorldPackets::Pet::PetAbandon& packet) if (!_player->IsInWorld()) return; + // pet/charmed Creature* pet = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, packet.Pet); - if (pet) + if (pet && pet->ToPet() && pet->ToPet()->getPetType() == HUNTER_PET) { - if (pet->IsPet()) - _player->RemovePet(pet->ToPet(), PET_SAVE_AS_DELETED); - else if (pet->GetGUID() == _player->GetCharmGUID()) - _player->StopCastingCharm(); + _player->RemovePet((Pet*)pet, PET_SAVE_AS_DELETED); } } |