From cfed9b3aca79e083c481df2afefefb25819f6b3b Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 19 May 2026 14:21:55 -0700
Subject: [PATCH] Allow setting NULL palette on any surface
Fixes https://github.com/libsdl-org/SDL/issues/15654
---
src/video/SDL_surface.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c
index ddd02fa6571f2..d38d9a48ce4c1 100644
--- a/src/video/SDL_surface.c
+++ b/src/video/SDL_surface.c
@@ -423,10 +423,14 @@ SDL_Palette *SDL_CreateSurfacePalette(SDL_Surface *surface)
bool SDL_SetSurfacePalette(SDL_Surface *surface, SDL_Palette *palette)
{
- CHECK_PARAM(!SDL_SurfaceValid(surface) || !SDL_ISPIXELFORMAT_INDEXED(surface->format)) {
+ CHECK_PARAM(!SDL_SurfaceValid(surface)) {
return SDL_InvalidParamError("surface");
}
+ CHECK_PARAM(palette && !SDL_ISPIXELFORMAT_INDEXED(surface->format)) {
+ return SDL_SetError("Surface doesn't use a palette");
+ }
+
CHECK_PARAM(palette && palette->ncolors > (1 << SDL_BITSPERPIXEL(surface->format))) {
return SDL_SetError("Palette doesn't match surface format");
}