Commit: 549a5fd661c06102ce203749f2f66bd2bf23cc0d
Author: Julian Eisel
Date:   Mon Mar 9 12:41:02 2020 +0100
Branches: vr_scene_inspection
https://developer.blender.org/rB549a5fd661c06102ce203749f2f66bd2bf23cc0d

Fix use-after-free when closing Blender with running VR session

Somehow two wm_xr_data_destroy() calls ended up there, probably a merge
conflict.

===================================================================

M       source/blender/windowmanager/intern/wm.c
M       source/blender/windowmanager/intern/wm_xr.c

===================================================================

diff --git a/source/blender/windowmanager/intern/wm.c 
b/source/blender/windowmanager/intern/wm.c
index f73313b98a9..6dbd4a48e91 100644
--- a/source/blender/windowmanager/intern/wm.c
+++ b/source/blender/windowmanager/intern/wm.c
@@ -380,10 +380,6 @@ void wm_close_and_free(bContext *C, wmWindowManager *wm)
     WM_msgbus_destroy(wm->message_bus);
   }
 
-#ifdef WITH_XR_OPENXR
-  wm_xr_data_destroy(wm);
-#endif
-
   BLI_freelistN(&wm->paintcursors);
 
   WM_drag_free_list(&wm->drags);
diff --git a/source/blender/windowmanager/intern/wm_xr.c 
b/source/blender/windowmanager/intern/wm_xr.c
index 034572e5687..2fb6929bfbe 100644
--- a/source/blender/windowmanager/intern/wm_xr.c
+++ b/source/blender/windowmanager/intern/wm_xr.c
@@ -185,6 +185,7 @@ void wm_xr_data_destroy(wmWindowManager *wm)
 {
   if (wm->xr.context != NULL) {
     GHOST_XrContextDestroy(wm->xr.context);
+    wm->xr.context = NULL;
   }
   if (wm->xr.session_state != NULL) {
     wm_xr_runtime_session_state_free(&wm->xr.session_state);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to