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 d5af35e3fb)
This commit is contained in:
Anonymous Maarten 2026-05-15 03:47:28 +02:00 committed by Sam Lantinga
parent b84e981ed8
commit f00b0291b3

View file

@ -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");
}