Fix possible use-after-free on error handling during VR view drawing
Whenever an exception happens in VR session code, we cancel the entire session. Alongside that, we removed the "surface" item used to draw into an offscreen context. But this may still be stored as active surface, leading to a use-after-free when deactivating this active surface, for example.
This commit is contained in:
@@ -119,6 +119,9 @@ void wm_surface_add(wmSurface *surface)
|
||||
|
||||
void wm_surface_remove(wmSurface *surface)
|
||||
{
|
||||
if (surface == g_drawable) {
|
||||
wm_surface_clear_drawable();
|
||||
}
|
||||
BLI_remlink(&global_surface_list, surface);
|
||||
surface->free_data(surface);
|
||||
MEM_freeN(surface);
|
||||
|
Reference in New Issue
Block a user