Fixed bug 2681 - dereference a NULL pointer dst_fmt in SDL_CreateTextureFromSurface function
authorSam Lantinga <slouken@libsdl.org>
Sat, 16 Aug 2014 23:30:44 -0700
changeset 9078 230e7558f76a
parent 9077 28e6de55eb07
child 9079 373df87521e5
Fixed bug 2681 - dereference a NULL pointer dst_fmt in SDL_CreateTextureFromSurface function Nitz In SDL_CreateTextureFromSurface: SDL_PixelFormat *dst_fmt; /* Set up a destination surface for the texture update */ dst_fmt = SDL_AllocFormat(format); temp = SDL_ConvertSurface(surface, dst_fmt, 0); Here is need of NULL check for dst_fmt because there are chances of NULL return from SDL_AllocFormat(format);
src/render/SDL_render.c
--- a/src/render/SDL_render.c	Sat Aug 16 23:28:40 2014 -0700
+++ b/src/render/SDL_render.c	Sat Aug 16 23:30:44 2014 -0700
@@ -540,6 +540,10 @@
 
         /* Set up a destination surface for the texture update */
         dst_fmt = SDL_AllocFormat(format);
+        if (!dst_fmt) {
+           SDL_DestroyTexture(texture);
+           return NULL;
+        }
         temp = SDL_ConvertSurface(surface, dst_fmt, 0);
         SDL_FreeFormat(dst_fmt);
         if (temp) {