diff options
-rw-r--r-- | src/guiInventoryMenu.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/guiInventoryMenu.cpp b/src/guiInventoryMenu.cpp index f33460906..c7cff329e 100644 --- a/src/guiInventoryMenu.cpp +++ b/src/guiInventoryMenu.cpp @@ -531,10 +531,18 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event) assert(inv_s); InventoryList *list = inv_s->getList(s.listname); - if(list != NULL && (u32) s.i < list->getSize()) - s_count = list->getItem(s.i).count; - else + if(list == NULL){ + errorstream<<"InventoryMenu: The selected inventory list " + <<"does not exist"<<std::endl; + s.i = -1; // make it invalid again + } else if((u32)s.i >= list->getSize()){ + errorstream<<"InventoryMenu: The selected inventory list " + <<"is too small (i="<<s.i<<", size=" + <<list->getSize()<<")"<<std::endl; s.i = -1; // make it invalid again + } else{ + s_count = list->getItem(s.i).count; + } } bool identical = (m_selected_item != NULL) && s.isValid() && |