From 4df88960627aa9560e70e4bcfcfa5c3acfb2c8b7 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 19 Feb 2019 13:08:22 +0100 Subject: [PATCH] Playanim: Fix heap use after free on exit Was caused by the wrong de-initialization order, here is an ASAN log just in case P916. --- source/blender/windowmanager/intern/wm_playanim.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/windowmanager/intern/wm_playanim.c b/source/blender/windowmanager/intern/wm_playanim.c index 58e5882deac..a8d75ac8fdb 100644 --- a/source/blender/windowmanager/intern/wm_playanim.c +++ b/source/blender/windowmanager/intern/wm_playanim.c @@ -1540,6 +1540,8 @@ static char *wm_main_playanim_intern(int argc, const char **argv) GPU_shader_free_builtin_shaders(); + immDeactivate(); + if (g_WS.gpu_context) { GPU_context_active_set(g_WS.gpu_context); GPU_context_discard(g_WS.gpu_context); @@ -1548,7 +1550,6 @@ static char *wm_main_playanim_intern(int argc, const char **argv) BLF_exit(); - immDeactivate(); GPU_exit(); GHOST_DisposeWindow(g_WS.ghost_system, g_WS.ghost_window);