From 7d6e80a423f75aa15d95233852979713d9c99625 Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Fri, 1 Jun 2012 19:33:20 +0300
Subject: Add proper error messages to GUIInventoryMenu when inventory lists
 are invalid

---
 src/guiInventoryMenu.cpp | 14 +++++++++++---
 1 file 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() &&
-- 
cgit v1.2.3