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