From 9b8dbf92811c1cd7084466439d9fd37405014311 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 6 Sep 2016 22:52:32 +0200 Subject: Core/PacketIO: Defined smaller limits for incoming array sizes in client packets (default is 1000) --- src/server/game/DataStores/DB2Stores.cpp | 3 +++ src/server/game/DataStores/DBCEnums.h | 2 ++ src/server/game/Server/Packets/AuctionHousePackets.h | 2 +- src/server/game/Server/Packets/CharacterPackets.cpp | 4 +--- src/server/game/Server/Packets/CharacterPackets.h | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src/server') diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index f9d3b5095d4..0eac7fd444e 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -517,6 +517,9 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale) for (ArtifactPowerRankEntry const* artifactPowerRank : sArtifactPowerRankStore) _artifactPowerRanks[std::pair{ artifactPowerRank->ArtifactPowerID, artifactPowerRank->Rank }] = artifactPowerRank; + ASSERT(BATTLE_PET_SPECIES_MAX_ID >= sBattlePetSpeciesStore.GetNumRows(), + "BATTLE_PET_SPECIES_MAX_ID (%d) must be equal to or greater than %u", BATTLE_PET_SPECIES_MAX_ID, sBattlePetSpeciesStore.GetNumRows()); + std::unordered_map>> addedSections; for (CharSectionsEntry const* charSection : sCharSectionsStore) { diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 9e466e10be0..c38661301b3 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -147,6 +147,8 @@ enum ArtifactPowerFlag : uint8 ARTIFACT_POWER_FLAG_DONT_COUNT_FIRST_BONUS_RANK = 0x10, }; +#define BATTLE_PET_SPECIES_MAX_ID 1942 + enum ChrSpecializationFlag { CHR_SPECIALIZATION_FLAG_CASTER = 0x01, diff --git a/src/server/game/Server/Packets/AuctionHousePackets.h b/src/server/game/Server/Packets/AuctionHousePackets.h index 8ea9615e301..31c24cdb046 100644 --- a/src/server/game/Server/Packets/AuctionHousePackets.h +++ b/src/server/game/Server/Packets/AuctionHousePackets.h @@ -281,7 +281,7 @@ namespace WorldPackets uint8 MaxLevel = 100; int32 Quality = 0; uint8 SortCount = 0; - Array KnownPets; + Array KnownPets; int8 MaxPetLevel; std::string Name; Array ClassFilters; diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 7e44b8f9fe7..77095cc9635 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -330,10 +330,8 @@ WorldPacket const* WorldPackets::Character::GenerateRandomCharacterNameResult::W return &_worldPacket; } -WorldPackets::Character::ReorderCharacters::ReorderCharacters(WorldPacket&& packet) : ClientPacket(CMSG_REORDER_CHARACTERS, std::move(packet)), - Entries(sWorld->getIntConfig(CONFIG_CHARACTERS_PER_REALM)) +WorldPackets::Character::ReorderCharacters::ReorderCharacters(WorldPacket&& packet) : ClientPacket(CMSG_REORDER_CHARACTERS, std::move(packet)) { - } void WorldPackets::Character::ReorderCharacters::Read() diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index 695697468f9..9f739256bca 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -371,7 +371,7 @@ namespace WorldPackets void Read() override; - Array Entries; + Array Entries; }; class UndeleteCharacter final : public ClientPacket -- cgit v1.2.3