Fix server-crash with non-existing items.
This commit is contained in:
parent
24c86df12e
commit
64f6ddf1e2
@ -63,7 +63,7 @@ cItemHandler * cItemHandler::m_ItemHandler[2268];
|
|||||||
|
|
||||||
cItemHandler * cItemHandler::GetItemHandler(int a_ItemType)
|
cItemHandler * cItemHandler::GetItemHandler(int a_ItemType)
|
||||||
{
|
{
|
||||||
if (a_ItemType < 0)
|
if ((a_ItemType < 0) || (a_ItemType >= ARRAYCOUNT(m_ItemHandler)) || (!IsValidBlock(a_ItemType) && !IsValidItem(a_ItemType)))
|
||||||
{
|
{
|
||||||
// Either nothing (-1), or bad value, both cases should return the air handler
|
// Either nothing (-1), or bad value, both cases should return the air handler
|
||||||
if (a_ItemType < -1)
|
if (a_ItemType < -1)
|
||||||
|
@ -170,7 +170,13 @@ void cWindow::Clicked(
|
|||||||
const cItem & a_ClickedItem
|
const cItem & a_ClickedItem
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
cPluginManager * PlgMgr = cRoot::Get()->GetPluginManager();
|
if (!IsValidItem(a_ClickedItem.m_ItemType) && !IsValidBlock(a_ClickedItem.m_ItemType))
|
||||||
|
{
|
||||||
|
LOGWARNING("%s: Player \"%s\" clicked to a non-existing item; ignoring click.", __FUNCTION__, a_Player.GetName().c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cPluginManager * PlgMgr = cRoot::Get()->GetPluginManager();
|
||||||
if (a_WindowID != m_WindowID)
|
if (a_WindowID != m_WindowID)
|
||||||
{
|
{
|
||||||
LOGWARNING("%s: Wrong window ID (exp %d, got %d) received from \"%s\"; ignoring click.", __FUNCTION__, m_WindowID, a_WindowID, a_Player.GetName().c_str());
|
LOGWARNING("%s: Wrong window ID (exp %d, got %d) received from \"%s\"; ignoring click.", __FUNCTION__, m_WindowID, a_WindowID, a_Player.GetName().c_str());
|
||||||
|
Loading…
Reference in New Issue
Block a user