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