Sfoglia il codice sorgente

surface: cannot set a palette to a non-indexed surface

This fixes a UBSAN warning later in this function where it calculates
(1 << SDL_BITSPERPIXEL(surface->format)). The bpp might be >= 32 and
out of range for a bit shift.

(cherry picked from commit d5af35e3fbb5bb6555ed00e69740d52af2a4e877)
Anonymous Maarten 1 settimana fa
parent
commit
f00b0291b3
1 ha cambiato i file con 1 aggiunte e 1 eliminazioni
  1. 1 1
      src/video/SDL_surface.c

+ 1 - 1
src/video/SDL_surface.c

@@ -423,7 +423,7 @@ SDL_Palette *SDL_CreateSurfacePalette(SDL_Surface *surface)
 
 bool SDL_SetSurfacePalette(SDL_Surface *surface, SDL_Palette *palette)
 {
-    CHECK_PARAM(!SDL_SurfaceValid(surface)) {
+    CHECK_PARAM(!SDL_SurfaceValid(surface) || !SDL_ISPIXELFORMAT_INDEXED(surface->format)) {
         return SDL_InvalidParamError("surface");
     }