Skip to content

Commit

Permalink
fix setfenv applied on invalid code strings
Browse files Browse the repository at this point in the history
  • Loading branch information
Bauumm committed Jun 22, 2024
1 parent 467b8dd commit 8583381
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 9 deletions.
4 changes: 3 additions & 1 deletion compat/game192/lua_runtime.lua
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,9 @@ function lua_runtime.init_env(game, public)
tostring = tostring,
loadstring = function(...)
local f = loadstring(...)
setfenv(f, lua_runtime.env)
if f then
setfenv(f, lua_runtime.env)
end
return f
end,
io = vfs.io,
Expand Down
4 changes: 3 additions & 1 deletion compat/game20/lua_runtime.lua
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,9 @@ function lua_runtime.init_env(game, public, assets)
tostring = tostring,
load = function(...)
local f = load(...)
setfenv(f, lua_runtime.env)
if f then
setfenv(f, lua_runtime.env)
end
return f
end,
}
Expand Down
6 changes: 4 additions & 2 deletions compat/game21/custom_timelines.lua
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,10 @@ function custom_timelines.add_lua_functions(game)
function lua.ct_eval(handle, code)
local timeline = custom_timelines.get(handle)
local fn = loadstring(code)
setfenv(fn, lua_runtime.env)
timeline:append_do(fn)
if fn then
setfenv(fn, lua_runtime.env)
timeline:append_do(fn)
end
end

function lua.ct_kill(handle)
Expand Down
4 changes: 3 additions & 1 deletion compat/game21/lua_runtime/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ function lua_runtime.init_env(game, public)
tostring = tostring,
load = function(...)
local f = load(...)
setfenv(f, lua_runtime.env)
if f then
setfenv(f, lua_runtime.env)
end
return f
end,
}
Expand Down
12 changes: 8 additions & 4 deletions compat/game21/lua_runtime/timelines.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ return function(public, game)
-- Main timeline functions
env.t_eval = function(code)
local fn = loadstring(code)
setfenv(fn, env)
game.main_timeline:append_do(fn)
if fn then
setfenv(fn, env)
game.main_timeline:append_do(fn)
end
end
env.t_clear = function()
game.main_timeline:clear(true)
Expand All @@ -35,8 +37,10 @@ return function(public, game)
-- Event timeline functions
env.e_eval = function(code)
local fn = loadstring(code)
setfenv(fn, env)
game.event_timeline:append_do(fn)
if fn then
setfenv(fn, env)
game.event_timeline:append_do(fn)
end
end
env.e_kill = function()
game.event_timeline:append_do(function()
Expand Down

0 comments on commit 8583381

Please sign in to comment.