From: kwolekr Date: Mon, 26 Oct 2015 08:01:01 +0000 (-0400) Subject: SAPI: Fix seed parameter truncation for LuaPseudoRandom constructor X-Git-Tag: 0.4.14~562 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=bc0318d2fc0d435e20b1186203ce2908162241ca;p=oweals%2Fminetest.git SAPI: Fix seed parameter truncation for LuaPseudoRandom constructor Also fix a potential seed truncation issue on platforms where the range of ptrdiff_t (the underlying type of lua_Integer) is too small. --- diff --git a/src/script/lua_api/l_noise.cpp b/src/script/lua_api/l_noise.cpp index 43dd32023..6dcffa31c 100644 --- a/src/script/lua_api/l_noise.cpp +++ b/src/script/lua_api/l_noise.cpp @@ -440,7 +440,7 @@ int LuaPseudoRandom::create_object(lua_State *L) { NO_MAP_LOCK_REQUIRED; - int seed = luaL_checknumber(L, 1); + u64 seed = luaL_checknumber(L, 1); LuaPseudoRandom *o = new LuaPseudoRandom(seed); *(void **)(lua_newuserdata(L, sizeof(void *))) = o; luaL_getmetatable(L, className); @@ -537,8 +537,8 @@ int LuaPcgRandom::create_object(lua_State *L) { NO_MAP_LOCK_REQUIRED; - lua_Integer seed = luaL_checknumber(L, 1); - LuaPcgRandom *o = lua_isnumber(L, 2) ? + u64 seed = luaL_checknumber(L, 1); + LuaPcgRandom *o = lua_isnumber(L, 2) ? new LuaPcgRandom(seed, lua_tointeger(L, 2)) : new LuaPcgRandom(seed); *(void **)(lua_newuserdata(L, sizeof(void *))) = o;