From 16d4729f06fee23af6fa9fd0a7f5777ebd3e50af Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Mon, 25 Jun 2012 20:48:36 -0300 Subject: [PATCH] Check wrong slot/skill to avoid leaks --- src/otclient/core/localplayer.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/otclient/core/localplayer.cpp b/src/otclient/core/localplayer.cpp index b9028096..d9e1b7f0 100644 --- a/src/otclient/core/localplayer.cpp +++ b/src/otclient/core/localplayer.cpp @@ -202,6 +202,11 @@ void LocalPlayer::setStates(int states) void LocalPlayer::setSkill(Otc::Skill skill, int level, int levelPercent) { + if(skill >= Otc::LastSkill) { + g_logger.traceError("invalid skill"); + return; + } + int oldLevel = m_skillsLevel[skill]; int oldLevelPercent = m_skillsLevelPercent[skill]; @@ -310,6 +315,11 @@ void LocalPlayer::setStamina(double stamina) void LocalPlayer::setInventoryItem(Otc::Inventory inventory, const ItemPtr& item) { + if(inventory >= Otc::LastInventory) { + g_logger.traceError("invalid slot"); + return; + } + if(m_inventoryItems[inventory] != item) { ItemPtr oldItem = m_inventoryItems[inventory]; m_inventoryItems[inventory] = item;