mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-06 06:34:35 +00:00
kmsdrm: Fix order of GBM and EGL teardown
All locked front buffers must be released prior to destroying the EGL surface to avoid causing a UAF in libnvidia-egl-gbm.so.
This commit is contained in:
parent
88017f5023
commit
9cc2f248f5
1 changed files with 11 additions and 11 deletions
|
|
@ -1113,17 +1113,6 @@ static void KMSDRM_DestroySurfaces(_THIS, SDL_Window *window)
|
|||
SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "Could not restore CRTC");
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* Destroy the EGL surface */
|
||||
/***************************/
|
||||
|
||||
SDL_EGL_MakeCurrent(_this, EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
||||
|
||||
if (windata->egl_surface != EGL_NO_SURFACE) {
|
||||
SDL_EGL_DestroySurface(_this, windata->egl_surface);
|
||||
windata->egl_surface = EGL_NO_SURFACE;
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* Destroy the GBM buffers */
|
||||
/***************************/
|
||||
|
|
@ -1138,6 +1127,17 @@ static void KMSDRM_DestroySurfaces(_THIS, SDL_Window *window)
|
|||
windata->next_bo = NULL;
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* Destroy the EGL surface */
|
||||
/***************************/
|
||||
|
||||
SDL_EGL_MakeCurrent(_this, EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
||||
|
||||
if (windata->egl_surface != EGL_NO_SURFACE) {
|
||||
SDL_EGL_DestroySurface(_this, windata->egl_surface);
|
||||
windata->egl_surface = EGL_NO_SURFACE;
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* Destroy the GBM surface */
|
||||
/***************************/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue