From e1e5f2a196240707f1671a02df6bd4966fed67f3 Mon Sep 17 00:00:00 2001 From: Sebastian Valle Herrera Date: Sat, 7 Jun 2014 19:23:38 -0500 Subject: Core/Items: Fixed a transmogrify exploit Thanks @Rochet2 Closes #11952 --- src/server/game/Handlers/ItemHandler.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/server/game/Handlers/ItemHandler.cpp') diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index 168d45cecca..741dec9bfec 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -1495,6 +1495,12 @@ void WorldSession::HandleTransmogrifyItems(WorldPacket& recvData) } else { + if (itemTransmogrifier->GetEntry() != newEntries[i]) + { + TC_LOG_DEBUG("network", "WORLD: HandleTransmogrifyItems - Player (GUID: %u, name: %s) tried to transmogrify with an invalid entry (entry: %u) for item (lowguid: %u).", player->GetGUIDLow(), player->GetName().c_str(), newEntries[i], GUID_LOPART(itemGuids[i])); + return; + } + if (!Item::CanTransmogrifyItemWithItem(itemTransmogrified, itemTransmogrifier)) { TC_LOG_DEBUG("network", "WORLD: HandleTransmogrifyItems - Player (GUID: %u, name: %s) failed CanTransmogrifyItemWithItem (%u with %u).", player->GetGUIDLow(), player->GetName().c_str(), itemTransmogrified->GetEntry(), itemTransmogrifier->GetEntry()); -- cgit v1.2.3