summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/guiInventoryMenu.cpp14
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() &&