From 8795fb54f493e594ec77fff66187a6f8f221fb2f Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 4 Feb 2026 23:05:01 -0600 Subject: [PATCH] Fix double-free in Vulkan renderer when an overlay is disabled Also a drive-by fix to avoid pl_tex copying --- app/streaming/video/ffmpeg-renderers/plvk.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/streaming/video/ffmpeg-renderers/plvk.cpp b/app/streaming/video/ffmpeg-renderers/plvk.cpp index 0d469734..6fad86bb 100644 --- a/app/streaming/video/ffmpeg-renderers/plvk.cpp +++ b/app/streaming/video/ffmpeg-renderers/plvk.cpp @@ -806,6 +806,7 @@ void PlVkRenderer::renderFrame(AVFrame *frame) // If we have an overlay but it's been disabled, free the overlay texture if (m_Overlays[i].hasOverlay && !Session::get()->getOverlayManager().isOverlayEnabled((Overlay::OverlayType)i)) { texturesToDestroy.push_back(m_Overlays[i].overlay.tex); + SDL_zero(m_Overlays[i].overlay); m_Overlays[i].hasOverlay = false; } @@ -884,7 +885,7 @@ void PlVkRenderer::renderFrame(AVFrame *frame) UnmapExit: // Delete any textures that need to be destroyed - for (pl_tex texture : texturesToDestroy) { + for (pl_tex& texture : texturesToDestroy) { pl_tex_destroy(m_Vulkan->gpu, &texture); }