Browse Source

[KMSDRM] Fix segmentation fault

Deference the windata pointer *after* checking that it's non-NULL.

Signed-off-by: Paul Cercueil <[email protected]>
Paul Cercueil 4 years ago
parent
commit
c12f46b100
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/video/kmsdrm/SDL_kmsdrmvideo.c

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

@@ -1071,7 +1071,7 @@ KMSDRM_DestroyWindow(_THIS, SDL_Window *window)
 {
 {
     SDL_WindowData *windata = (SDL_WindowData *) window->driverdata;
     SDL_WindowData *windata = (SDL_WindowData *) window->driverdata;
     SDL_DisplayData *dispdata = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata;
     SDL_DisplayData *dispdata = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata;
-    SDL_VideoData *viddata = windata->viddata;
+    SDL_VideoData *viddata;
     SDL_bool is_vulkan = window->flags & SDL_WINDOW_VULKAN; /* Is this a VK window? */
     SDL_bool is_vulkan = window->flags & SDL_WINDOW_VULKAN; /* Is this a VK window? */
     unsigned int i, j;
     unsigned int i, j;
 
 
@@ -1079,6 +1079,8 @@ KMSDRM_DestroyWindow(_THIS, SDL_Window *window)
         return;
         return;
     }
     }
 
 
+    viddata = windata->viddata;
+
     if ( !is_vulkan && viddata->gbm_init) {
     if ( !is_vulkan && viddata->gbm_init) {
 
 
         /* Destroy cursor GBM BO of the display of this window. */
         /* Destroy cursor GBM BO of the display of this window. */