From c2d0b59f29e7c4ad7729d9268b5b5ccd437fbc0f Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 10 Apr 2026 00:03:55 -0500 Subject: [PATCH] kmsdrm: Fix double-free of GBM surface buffer in atomic mode --- src/video/kmsdrm/SDL_kmsdrmvideo.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c index 0c061b9d29..7b5c10f92c 100644 --- a/src/video/kmsdrm/SDL_kmsdrmvideo.c +++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c @@ -1708,7 +1708,9 @@ static void KMSDRM_DestroySurfaces(SDL_VideoDevice *_this, SDL_Window *window) /***************************/ if (windata->bo) { - KMSDRM_gbm_surface_release_buffer(windata->gs, windata->bo); + if (windata->bo != windata->next_bo) { + KMSDRM_gbm_surface_release_buffer(windata->gs, windata->bo); + } windata->bo = NULL; }