directfb: Fixed crash if creating renderer. SDL_GetWindowWMInfo() currently expects SDL to be 2.0.6 but SDL is still 2.0.5.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
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));