Skip to content

Commit 46616b6

Browse files
committed
Fix double free of scene source (causes corruption like removal of scenes and eventually crashes OBS)
1 parent dbd86e5 commit 46616b6

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

obs-visca-control.lua

+7-5
Original file line numberDiff line numberDiff line change
@@ -350,13 +350,15 @@ local function get_plugin_settings_from_scene(scene_type, camera_id)
350350
obs.obs_frontend_get_current_preview_scene()
351351
elseif type(scene_type) == "string" then
352352
local scenes = obs.obs_frontend_get_scenes()
353-
for _, eval_scene in pairs(scenes) do
354-
if scene_type == obs.obs_source_get_name(eval_scene) then
355-
scene_source = eval_scene
356-
break
353+
if scenes ~= nil then
354+
for _, eval_scene in pairs(scenes) do
355+
if scene_type == obs.obs_source_get_name(eval_scene) then
356+
scene_source = obs.obs_source_get_ref(eval_scene)
357+
break
358+
end
357359
end
360+
obs.source_list_release(scenes)
358361
end
359-
obs.source_list_release(scenes)
360362
end
361363

362364
if scene_source ~= nil then

0 commit comments

Comments
 (0)