فهرست منبع

SDL_ConvertSurface(): add null pointer check

Check return values of SDL_CreateSurface()
and SDL_ConvertSurface().
Mingjie Shen 2 سال پیش
والد
کامیت
ac607c1088
1فایلهای تغییر یافته به همراه9 افزوده شده و 0 حذف شده
  1. 9 0
      src/video/SDL_surface.c

+ 9 - 0
src/video/SDL_surface.c

@@ -1293,6 +1293,10 @@ SDL_ConvertSurface(SDL_Surface *surface, const SDL_PixelFormat *format)
 
             /* Create a dummy surface to get the colorkey converted */
             tmp = SDL_CreateSurface(1, 1, surface->format->format);
+            if (tmp == NULL) {
+                SDL_DestroySurface(convert);
+                return NULL;
+            }
 
             /* Share the palette, if any */
             if (surface->format->palette) {
@@ -1305,6 +1309,11 @@ SDL_ConvertSurface(SDL_Surface *surface, const SDL_PixelFormat *format)
 
             /* Convertion of the colorkey */
             tmp2 = SDL_ConvertSurface(tmp, format);
+            if (tmp2 == NULL) {
+                SDL_DestroySurface(tmp);
+                SDL_DestroySurface(convert);
+                return NULL;
+            }
 
             /* Get the converted colorkey */
             SDL_memcpy(&converted_colorkey, tmp2->pixels, tmp2->format->BytesPerPixel);