Commit c609d856ffb07c9659859bb3a8add1ed15b16586

Philipp Wiesemann 2017-06-11T22:30:24

directfb: Fixed crash if creating renderer. SDL_GetWindowWMInfo() currently expects SDL to be 2.0.6 but SDL is still 2.0.5.

diff --git a/src/video/directfb/SDL_DirectFB_render.c b/src/video/directfb/SDL_DirectFB_render.c
index abece80..4280d04 100644
--- a/src/video/directfb/SDL_DirectFB_render.c
+++ b/src/video/directfb/SDL_DirectFB_render.c
@@ -217,7 +217,9 @@ static SDL_INLINE IDirectFBSurface *get_dfb_surface(SDL_Window *window)
     SDL_memset(&wm_info, 0, sizeof(SDL_SysWMinfo));
 
     SDL_VERSION(&wm_info.version);
-    SDL_GetWindowWMInfo(window, &wm_info);
+    if (!SDL_GetWindowWMInfo(window, &wm_info)) {
+        return NULL;
+    }
 
     return wm_info.info.dfb.surface;
 }
@@ -228,7 +230,9 @@ static SDL_INLINE IDirectFBWindow *get_dfb_window(SDL_Window *window)
     SDL_memset(&wm_info, 0, sizeof(SDL_SysWMinfo));
 
     SDL_VERSION(&wm_info.version);
-    SDL_GetWindowWMInfo(window, &wm_info);
+    if (!SDL_GetWindowWMInfo(window, &wm_info)) {
+        return NULL;
+    }
 
     return wm_info.info.dfb.window;
 }
@@ -356,6 +360,10 @@ DirectFB_CreateRenderer(SDL_Window * window, Uint32 flags)
     DirectFB_RenderData *data = NULL;
     DFBSurfaceCapabilities scaps;
 
+    if (!winsurf) {
+        return NULL;
+    }
+
     SDL_DFB_ALLOC_CLEAR(renderer, sizeof(*renderer));
     SDL_DFB_ALLOC_CLEAR(data, sizeof(*data));