Fixed bug 1923 - Crash with SDL_SetColorKey
authorSam Lantinga <slouken@libsdl.org>
Sat, 06 Jul 2013 20:29:40 -0700
changeset 7363 75b8a207cb65
parent 7362 fdf6c14b447c
child 7364 e21bd6987b86
Fixed bug 1923 - Crash with SDL_SetColorKey Sylvain 1/ Load an Image XPM with IMG_ReadXPMFromArray() 2/ Try to set a ColorKey on it. I notice that : - the SDL_Surface that is created from XPM has a palette ! - the colorkey is a RBG. it crashes (SIGSEGV) inside the SDL_SetColorKey function: "surface->format->palette->colors[surface->map->info.colorkey].a"
src/video/SDL_surface.c
--- a/src/video/SDL_surface.c	Sat Jul 06 12:39:56 2013 -0700
+++ b/src/video/SDL_surface.c	Sat Jul 06 20:29:40 2013 -0700
@@ -175,7 +175,11 @@
     int flags;
 
     if (!surface) {
-        return -1;
+        return SDL_InvalidParamError("surface");
+    }
+
+    if (surface->format->palette && key >= surface->format->palette->ncolors) {
+        return SDL_InvalidParamError("key");
     }
 
     if (flag & SDL_RLEACCEL) {