lua

A copy of the Lua development repository
Log | Files | Refs | README

commit 9be89a1864a4a8c6505e3f1c3457831893b66d27
parent b9f371a3c2e6da297d7d6de581519c92d4e38e2f
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Fri, 29 Oct 2010 10:51:57 -0200

'luaL_checkversion' also checks convertions (number to integer types)

Diffstat:
Mlauxlib.c | 9++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lauxlib.c b/lauxlib.c @@ -1,5 +1,5 @@ /* -** $Id: lauxlib.c,v 1.222 2010/10/25 19:01:37 roberto Exp roberto $ +** $Id: lauxlib.c,v 1.223 2010/10/25 20:31:11 roberto Exp roberto $ ** Auxiliary functions for building Lua libraries ** See Copyright Notice in lua.h */ @@ -876,5 +876,12 @@ LUALIB_API void luaL_checkversion_ (lua_State *L, lua_Number ver) { else if (*v != ver) luaL_error(L, "version mismatch: app. needs %d, Lua core provides %f", ver, *v); + /* check conversions number -> integer types */ + lua_pushnumber(L, -(lua_Number)0x1234); + if (lua_tointeger(L, -1) != -0x1234 || + lua_tounsigned(L, -1) != (lua_Unsigned)-0x1234) + luaL_error(L, "bad conversion number->int;" + " must recompile Lua with proper settings"); + lua_pop(L, 1); }