Просмотр исходного кода

kmsdrm: Fix double-free of GBM surface buffer in atomic mode

(cherry picked from commit c2d0b59f29e7c4ad7729d9268b5b5ccd437fbc0f)
Cameron Gutman 1 день назад
Родитель
Сommit
2d0ea900ba
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      src/video/kmsdrm/SDL_kmsdrmvideo.c

+ 3 - 1
src/video/kmsdrm/SDL_kmsdrmvideo.c

@@ -1712,7 +1712,9 @@ static void KMSDRM_DestroySurfaces(SDL_VideoDevice *_this, SDL_Window *window)
     /***************************/
     /***************************/
 
 
     if (windata->bo) {
     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;
         windata->bo = NULL;
     }
     }