From 3a9f44f2de816efff257604b36132b6f126078c0 Mon Sep 17 00:00:00 2001 From: Konstantin Osipov <kostja@tarantool.org> Date: Thu, 19 Sep 2013 13:15:20 +0400 Subject: [PATCH] Fix https://github.com/tarantool/tarantool/issues/33 Fix a crash when box.fiber.find() is called with no arguments. Add a check for empty Lua stack. Add a test. --- src/lua/init.cc | 2 ++ test/box/fiber.result | 8 ++++++++ test/box/fiber.test | 3 +++ 3 files changed, 13 insertions(+) diff --git a/src/lua/init.cc b/src/lua/init.cc index 2afcc14b3a..72b0f48350 100644 --- a/src/lua/init.cc +++ b/src/lua/init.cc @@ -858,6 +858,8 @@ lbox_fiber_self(struct lua_State *L) static int lbox_fiber_find(struct lua_State *L) { + if (lua_gettop(L) != 1) + luaL_error(L, "fiber.find(): bad arguments"); int fid = lua_tointeger(L, -1); struct fiber *f = fiber_find(fid); if (f) diff --git a/test/box/fiber.result b/test/box/fiber.result index 3b49764ee7..41209e7f0c 100644 --- a/test/box/fiber.result +++ b/test/box/fiber.result @@ -201,3 +201,11 @@ lua box.fiber.find(920) lua box.space[0]:truncate() --- ... +lua box.fiber.find() +--- +error: 'fiber.find(): bad arguments' +... +lua box.fiber.find('test') +--- + - nil +... diff --git a/test/box/fiber.test b/test/box/fiber.test index ec15bf044d..3d3e92a19d 100644 --- a/test/box/fiber.test +++ b/test/box/fiber.test @@ -80,3 +80,6 @@ exec admin "lua box.fiber.find(900)" exec admin "lua box.fiber.find(910)" exec admin "lua box.fiber.find(920)" exec admin "lua box.space[0]:truncate()" +# https://github.com/tarantool/tarantool/issues/33 +exec admin "lua box.fiber.find()" +exec admin "lua box.fiber.find('test')" -- GitLab