From bc0ac581aa2b79cd48e4b2083d8c7890ace580aa Mon Sep 17 00:00:00 2001
From: Vanessa Ezekowitz <vanessaezekowitz@gmail.com>
Date: Mon, 12 Jan 2015 23:43:56 +0100
Subject: [PATCH] prevent crash if get_recipe_index() is passed a nil or apparent garbage instead of a table

---
 technic/machines/register/recipes.lua |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/technic/machines/register/recipes.lua b/technic/machines/register/recipes.lua
index 22e9866..c71af95 100644
--- a/technic/machines/register/recipes.lua
+++ b/technic/machines/register/recipes.lua
@@ -17,6 +17,7 @@
 end
 
 local function get_recipe_index(items)
+	if not items or type(items) ~= "table" then return false end
 	local l = {}
 	for i, stack in ipairs(items) do
 		l[i] = ItemStack(stack):get_name()
@@ -40,6 +41,10 @@
 	
 	local recipe = {time = data.time, input = {}, output = data.output}
 	local index = get_recipe_index(data.input)
+	if not index then
+		print("[Technic] ignored registration of garbage recipe!")
+		return
+	end
 	for _, stack in ipairs(data.input) do
 		recipe.input[ItemStack(stack):get_name()] = ItemStack(stack):get_count()
 	end
@@ -75,6 +80,10 @@
 		end
 	end
 	local index = get_recipe_index(items)
+	if not index then
+		print("[Technic] ignored registration of garbage recipe!")
+		return
+	end
 	local recipe = technic.recipes[typename].recipes[index]
 	if recipe then
 		local new_input = {}

--
Gitblit v1.8.0