From dcbf5affdacb1772637cc4829de5b0377bc82f07 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 18 Dec 2020 19:39:24 -0600 Subject: [PATCH] Fix use-after-free in VDPAU overlay rendering --- app/streaming/video/ffmpeg-renderers/vdpau.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/streaming/video/ffmpeg-renderers/vdpau.cpp b/app/streaming/video/ffmpeg-renderers/vdpau.cpp index fb2b291e..f6ac822a 100644 --- a/app/streaming/video/ffmpeg-renderers/vdpau.cpp +++ b/app/streaming/video/ffmpeg-renderers/vdpau.cpp @@ -385,9 +385,6 @@ void VDPAURenderer::notifyOverlayUpdated(Overlay::OverlayType type) return; } - // Surface data is no longer needed - SDL_FreeSurface(newSurface); - VdpRect overlayRect; if (type == Overlay::OverlayStatusUpdate) { @@ -404,6 +401,9 @@ void VDPAURenderer::notifyOverlayUpdated(Overlay::OverlayType type) overlayRect.x1 = overlayRect.x0 + newSurface->w; overlayRect.y1 = overlayRect.y0 + newSurface->h; + // Surface data is no longer needed + SDL_FreeSurface(newSurface); + SDL_LockMutex(m_OverlayMutex); m_OverlaySurface[type] = newBitmapSurface; m_OverlayRect[type] = overlayRect;