lua Fix a few potential bugs

Change-Id: I0293371c58f1ca2d148b3b1e1f780cf76f312ef9
This commit is contained in:
William Wilgus 2021-08-13 22:36:52 -04:00
parent aad15d5cd7
commit 8c36d8b131
3 changed files with 10 additions and 3 deletions

View File

@ -803,8 +803,10 @@ static int panic (lua_State *L) {
LUALIB_API lua_State *luaL_newstate (void) {
lua_State *L = lua_newstate(l_alloc, NULL);
lua_setallocf(L, l_alloc, L); /* allocator needs lua_State. */
if (L) lua_atpanic(L, &panic);
if (L){
lua_setallocf(L, l_alloc, L); /* allocator needs lua_State. */
lua_atpanic(L, &panic);
}
return L;
}

View File

@ -96,7 +96,10 @@ static int math_floor (lua_State *L) {
static int math_fmod (lua_State *L) {
/* Was: lua_pushnumber(L, fmod(luaL_checknumber(L, 1), luaL_checknumber(L, 2))); */
lua_pushnumber(L, luaL_checknumber(L, 1) % luaL_checknumber(L, 2));
lua_Number n = luaL_checknumber(L, 1);
lua_Number d = luaL_checknumber(L, 2);
luaL_argcheck(L, d != 0, 2, "division by zero");
lua_pushnumber(L, n % d);
return 1;
}

View File

@ -359,6 +359,8 @@ static void open_func (LexState *ls, FuncState *fs) {
static void close_func (LexState *ls) {
if (!ls || !ls->fs || !ls->fs->f)
return;
lua_State *L = ls->L;
FuncState *fs = ls->fs;
Proto *f = fs->f;