From 14b413c27d78a84cd419d6038666bf0a7ab6a6b0 Mon Sep 17 00:00:00 2001
From: Georgy Kirichenko <georgy@tarantool.org>
Date: Sun, 16 Jul 2017 16:36:01 +0300
Subject: [PATCH] Fix a typo in lua_convertint64()

Closes #2605
---
 src/lua/utils.c           |  2 +-
 test/app-tap/module_api.c | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/lua/utils.c b/src/lua/utils.c
index df2c0d7bea..441fec631d 100644
--- a/src/lua/utils.c
+++ b/src/lua/utils.c
@@ -768,7 +768,7 @@ luaL_convertint64(lua_State *L, int idx, bool unsignd, int64_t *result)
 		*result = lua_tointeger(L, idx);
 		return 0;
 	case LUA_TCDATA:
-		cdata = luaL_checkcdata(L, 1, &ctypeid);
+		cdata = luaL_checkcdata(L, idx, &ctypeid);
 		switch (ctypeid) {
 		case CTID_CCHAR:
 		case CTID_INT8:
diff --git a/test/app-tap/module_api.c b/test/app-tap/module_api.c
index f0fae08412..fbea07e4e2 100644
--- a/test/app-tap/module_api.c
+++ b/test/app-tap/module_api.c
@@ -162,6 +162,12 @@ test_touint64(lua_State *L)
 		return 0;
 	lua_pop(L, 1);
 
+	lua_pushliteral(L, "not a cdata");
+	luaL_pushuint64(L, 18446744073709551615ULL);
+	if (luaL_touint64(L, -1) != 18446744073709551615ULL)
+		return 0;
+	lua_pop(L, 2);
+
 	lua_pushboolean(L, 1);
 	return 1;
 }
@@ -179,6 +185,12 @@ test_toint64(lua_State *L)
 		return 0;
 	lua_pop(L, 1);
 
+	lua_pushliteral(L, "not a cdata");
+	luaL_pushuint64(L, 18446744073709551615ULL);
+	if (luaL_touint64(L, -1) != 18446744073709551615ULL)
+		return 0;
+	lua_pop(L, 2);
+
 	lua_pushboolean(L, 1);
 	return 1;
 }
-- 
GitLab