From 9c5994f2aec67b3c6fe5311850f3467ba1c8ce34 Mon Sep 17 00:00:00 2001
From: Dmitry Simonenko <pmwkaa@gmail.com>
Date: Thu, 21 Feb 2013 17:51:39 +0400
Subject: [PATCH] bugfix1119389: (lbox_tuple_index) crashes on 'nil' argument
 https://bugs.launchpad.net/tarantool/+bug/1119389

---
 src/box/box_lua.m   | 3 ++-
 test/box/lua.result | 8 ++++++++
 test/box/lua.test   | 3 +++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/box/box_lua.m b/src/box/box_lua.m
index c4f87b36fb..151694cd21 100644
--- a/src/box/box_lua.m
+++ b/src/box/box_lua.m
@@ -452,8 +452,9 @@ lbox_tuple_index(struct lua_State *L)
 		return 1;
 	}
 	/* If we got a string, try to find a method for it. */
+	const char *sz = luaL_checkstring(L, 2);
 	lua_getmetatable(L, 1);
-	lua_getfield(L, -1, lua_tostring(L, 2));
+	lua_getfield(L, -1, sz);
 	return 1;
 }
 
diff --git a/test/box/lua.result b/test/box/lua.result
index 5ee7f36e84..dd6510fab9 100644
--- a/test/box/lua.result
+++ b/test/box/lua.result
@@ -1783,3 +1783,11 @@ lua t[2], t[3], t[4], t[5]
 lua box.space[0]:truncate()
 ---
 ...
+# A test case for Bug#1119389 '(lbox_tuple_index) crashes on 'nil' argument'
+lua t=box.insert(0, 8989)
+---
+...
+lua t[nil]
+---
+error: '[string "return t[nil]"]:1: bad argument #2 to ''__index'' (string expected, got nil)'
+...
diff --git a/test/box/lua.test b/test/box/lua.test
index 3f7f9851f5..8b1812014d 100644
--- a/test/box/lua.test
+++ b/test/box/lua.test
@@ -593,3 +593,6 @@ print """# A test case for tuple:totable() method"""
 exec admin "lua t=box.select(0, 0, 777):totable()"
 exec admin "lua t[2], t[3], t[4], t[5]"
 exec admin "lua box.space[0]:truncate()"
+print """# A test case for Bug#1119389 '(lbox_tuple_index) crashes on 'nil' argument'"""
+exec admin "lua t=box.insert(0, 8989)"
+exec admin "lua t[nil]"
-- 
GitLab