Pārlūkot izejas kodu

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);
Sam Lantinga 10 gadi atpakaļ
vecāks
revīzija
529ed53b16
1 mainītis faili ar 4 papildinājumiem un 0 dzēšanām
  1. 4 0
      src/render/SDL_render.c

+ 4 - 0
src/render/SDL_render.c

@@ -540,6 +540,10 @@ SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface)
 
         /* 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) {