From 10ac2b73b88d84bd3005da69b145255a9f3aa2b9 Mon Sep 17 00:00:00 2001 From: krz Date: Fri, 26 Jun 2009 20:58:39 +0200 Subject: Better check to prevent exploiting in BuyItemFromVendor --HG-- branch : trunk --- src/game/Player.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 54e35a28466..4c651ca8e89 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -17145,15 +17145,6 @@ bool Player::BuyItemFromVendor(uint64 vendorguid, uint32 item, uint8 count, uint SendBuyError( BUY_ERR_CANT_FIND_ITEM, NULL, item, 0); return false; } - else - { - if(slot > pProto->ContainerSlots) - { - sLog.outDebug("CHEATING ATTEMPT slot > pProto->ContainerSlots in BuyItemFromVendor playerGUID: "I64FMT" name: %s slot: %u", GetGUID(), GetName(), slot); - return false; - } - } - Creature *pCreature = ObjectAccessor::GetNPCIfCanInteractWith(*this, vendorguid,UNIT_NPC_FLAG_VENDOR); if (!pCreature) @@ -17266,6 +17257,12 @@ bool Player::BuyItemFromVendor(uint64 vendorguid, uint32 item, uint8 count, uint { if( bagguid == pBag->GetGUID() ) { + // slot is counted from 0 but BagSize from 1 + if(slot+1 > pBag->GetBagSize()) + { + sLog.outDebug("CHEATING ATTEMPT slot > bagSize in BuyItemFromVendor playerGUID: "I64FMT" name: %s slot: %u", GetGUID(), GetName(), slot); + return false; + } bag = i; break; } -- cgit v1.2.3