From 9be89a1864a4a8c6505e3f1c3457831893b66d27 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 29 Oct 2010 10:52:21 -0200 Subject: [PATCH] 'luaL_checkversion' also checks convertions (number to integer types) --- lauxlib.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lauxlib.c b/lauxlib.c index 409e690d..a13b75c3 100644 --- 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); }