From e515d9b83ad096284009550f857b9f8220e5d08e Mon Sep 17 00:00:00 2001 From: kd-11 Date: Fri, 14 Jun 2019 15:52:31 +0300 Subject: [PATCH] vk: Fixup for missing resource reference - Missing ref increment when using framebuffer could lead to use-after-free. How master was not crashing is surprising --- rpcs3/Emu/RSX/VK/VKOverlays.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/RSX/VK/VKOverlays.h b/rpcs3/Emu/RSX/VK/VKOverlays.h index 7dcc3e6238..b85483c2a5 100644 --- a/rpcs3/Emu/RSX/VK/VKOverlays.h +++ b/rpcs3/Emu/RSX/VK/VKOverlays.h @@ -361,11 +361,11 @@ namespace vk void run(vk::command_buffer &cmd, u16 w, u16 h, vk::image* target, const std::vector& src, VkRenderPass render_pass) { - vk::framebuffer *fbo = get_framebuffer(target, render_pass); + auto fbo = static_cast(get_framebuffer(target, render_pass)); + fbo->add_ref(); run(cmd, w, h, fbo, src, render_pass); - - static_cast(fbo)->release(); + fbo->release(); } void run(vk::command_buffer &cmd, u16 w, u16 h, vk::image* target, vk::image_view* src, VkRenderPass render_pass)