From ae593507e64d84ebbe309f49f902bceaf50f0d0d Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 13 Nov 2019 19:13:56 -0500 Subject: [PATCH] Core/Battle Pets: Fixed possible crash in packet handler Port From (https://github.com/TrinityCore/TrinityCore/commit/ce8f9b9a4efc8a3f110465db5310f08067658f60) --- Source/Game/BattlePets/BattlePetManager.cs | 2 +- Source/Game/Handlers/BattlePetHandler.cs | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/Game/BattlePets/BattlePetManager.cs b/Source/Game/BattlePets/BattlePetManager.cs index 143d6fe64..e5509232a 100644 --- a/Source/Game/BattlePets/BattlePetManager.cs +++ b/Source/Game/BattlePets/BattlePetManager.cs @@ -454,7 +454,7 @@ namespace Game.BattlePets _owner.SendPacket(battlePetError); } - public BattlePetSlot GetSlot(byte slot) { return _slots[slot]; } + public BattlePetSlot GetSlot(byte slot) { return slot < _slots.Count ? _slots[slot] : null; } WorldSession GetOwner() { return _owner; } public ushort GetTrapLevel() { return _trapLevel; } diff --git a/Source/Game/Handlers/BattlePetHandler.cs b/Source/Game/Handlers/BattlePetHandler.cs index d3a54fbac..b28862972 100644 --- a/Source/Game/Handlers/BattlePetHandler.cs +++ b/Source/Game/Handlers/BattlePetHandler.cs @@ -35,7 +35,11 @@ namespace Game { BattlePetMgr.BattlePet pet = GetBattlePetMgr().GetPet(battlePetSetBattleSlot.PetGuid); if (pet != null) - GetBattlePetMgr().GetSlot(battlePetSetBattleSlot.Slot).Pet = pet.PacketInfo; + { + BattlePetSlot slot = GetBattlePetMgr().GetSlot(battlePetSetBattleSlot.Slot); + if (slot != null) + slot.Pet = pet.PacketInfo; + } } [WorldPacketHandler(ClientOpcodes.BattlePetModifyName)]