diff options
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/lua/lauxlib.c | 6 | ||||
-rw-r--r-- | apps/plugins/lua/lmathlib.c | 5 | ||||
-rw-r--r-- | apps/plugins/lua/lparser.c | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/apps/plugins/lua/lauxlib.c b/apps/plugins/lua/lauxlib.c index b8332427f0..9a5939aff9 100644 --- a/apps/plugins/lua/lauxlib.c +++ b/apps/plugins/lua/lauxlib.c | |||
@@ -803,8 +803,10 @@ static int panic (lua_State *L) { | |||
803 | 803 | ||
804 | LUALIB_API lua_State *luaL_newstate (void) { | 804 | LUALIB_API lua_State *luaL_newstate (void) { |
805 | lua_State *L = lua_newstate(l_alloc, NULL); | 805 | lua_State *L = lua_newstate(l_alloc, NULL); |
806 | lua_setallocf(L, l_alloc, L); /* allocator needs lua_State. */ | 806 | if (L){ |
807 | if (L) lua_atpanic(L, &panic); | 807 | lua_setallocf(L, l_alloc, L); /* allocator needs lua_State. */ |
808 | lua_atpanic(L, &panic); | ||
809 | } | ||
808 | return L; | 810 | return L; |
809 | } | 811 | } |
810 | 812 | ||
diff --git a/apps/plugins/lua/lmathlib.c b/apps/plugins/lua/lmathlib.c index 56c79afced..839d2014ad 100644 --- a/apps/plugins/lua/lmathlib.c +++ b/apps/plugins/lua/lmathlib.c | |||
@@ -96,7 +96,10 @@ static int math_floor (lua_State *L) { | |||
96 | 96 | ||
97 | static int math_fmod (lua_State *L) { | 97 | static int math_fmod (lua_State *L) { |
98 | /* Was: lua_pushnumber(L, fmod(luaL_checknumber(L, 1), luaL_checknumber(L, 2))); */ | 98 | /* Was: lua_pushnumber(L, fmod(luaL_checknumber(L, 1), luaL_checknumber(L, 2))); */ |
99 | lua_pushnumber(L, luaL_checknumber(L, 1) % luaL_checknumber(L, 2)); | 99 | lua_Number n = luaL_checknumber(L, 1); |
100 | lua_Number d = luaL_checknumber(L, 2); | ||
101 | luaL_argcheck(L, d != 0, 2, "division by zero"); | ||
102 | lua_pushnumber(L, n % d); | ||
100 | return 1; | 103 | return 1; |
101 | } | 104 | } |
102 | 105 | ||
diff --git a/apps/plugins/lua/lparser.c b/apps/plugins/lua/lparser.c index 23d3972036..06c62cedde 100644 --- a/apps/plugins/lua/lparser.c +++ b/apps/plugins/lua/lparser.c | |||
@@ -359,6 +359,8 @@ static void open_func (LexState *ls, FuncState *fs) { | |||
359 | 359 | ||
360 | 360 | ||
361 | static void close_func (LexState *ls) { | 361 | static void close_func (LexState *ls) { |
362 | if (!ls || !ls->fs || !ls->fs->f) | ||
363 | return; | ||
362 | lua_State *L = ls->L; | 364 | lua_State *L = ls->L; |
363 | FuncState *fs = ls->fs; | 365 | FuncState *fs = ls->fs; |
364 | Proto *f = fs->f; | 366 | Proto *f = fs->f; |