aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrobinsch <robinsch@users.noreply.github.com>2021-08-09 14:47:35 +0100
committerGitHub <noreply@github.com>2021-08-09 15:47:35 +0200
commit1b9ee9525316861dd1d2099ed355a221ffc47e3b (patch)
tree40fc435593fd40b0c79c2c13cb60b89de32df320 /src
parentec3b571ecaa21cac3aaf35075b21767424bca4bf (diff)
Core/Item: Fixed another possible container exploit due to invalid loading of stored loot items in DB (#26795)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Loot/LootItemStorage.cpp3
-rw-r--r--src/server/game/Loot/LootItemStorage.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Loot/LootItemStorage.cpp b/src/server/game/Loot/LootItemStorage.cpp
index 36f3c3a12ad..69d9a0f2e71 100644
--- a/src/server/game/Loot/LootItemStorage.cpp
+++ b/src/server/game/Loot/LootItemStorage.cpp
@@ -32,7 +32,7 @@ namespace
std::unordered_map<uint32, StoredLootContainer> _lootItemStore;
}
-StoredLootItem::StoredLootItem(LootItem const& lootItem) : ItemId(lootItem.itemid), Count(lootItem.count), FollowRules(lootItem.follow_loot_rules),
+StoredLootItem::StoredLootItem(LootItem const& lootItem) : ItemId(lootItem.itemid), Count(lootItem.count), ItemIndex(lootItem.itemIndex), FollowRules(lootItem.follow_loot_rules),
FFA(lootItem.freeforall), Blocked(lootItem.is_blocked), Counted(lootItem.is_counted), UnderThreshold(lootItem.is_underthreshold),
NeedsQuest(lootItem.needs_quest), RandomPropertyId(lootItem.randomPropertyId), RandomSuffix(lootItem.randomSuffix)
{
@@ -157,6 +157,7 @@ bool LootItemStorage::LoadStoredLoot(Item* item, Player* player)
LootItem li;
li.itemid = storedItemPair.first;
li.count = storedItemPair.second.Count;
+ li.itemIndex = storedItemPair.second.ItemIndex;
li.follow_loot_rules = storedItemPair.second.FollowRules;
li.freeforall = storedItemPair.second.FFA;
li.is_blocked = storedItemPair.second.Blocked;
diff --git a/src/server/game/Loot/LootItemStorage.h b/src/server/game/Loot/LootItemStorage.h
index d3903721e4c..1a80c1d29c5 100644
--- a/src/server/game/Loot/LootItemStorage.h
+++ b/src/server/game/Loot/LootItemStorage.h
@@ -35,6 +35,7 @@ struct StoredLootItem
uint32 ItemId;
uint32 Count;
+ uint32 ItemIndex;
bool FollowRules;
bool FFA;
bool Blocked;