Fixed warning C6386: Buffer overrun while writing to 'palette_saved_alpha': the writable size is 'sizeof(Uint8)*((palette_saved_alpha_ncolors))' bytes, but '2' bytes might be written.

main
Sam Lantinga 2023-12-04 20:57:27 -08:00
parent 0dad56354c
commit 54dc73aa88
1 changed files with 6 additions and 4 deletions

View File

@ -1210,6 +1210,7 @@ SDL_Surface *SDL_ConvertSurface(SDL_Surface *surface, const SDL_PixelFormat *for
if (set_opaque) { if (set_opaque) {
int i; int i;
palette_saved_alpha_ncolors = surface->format->palette->ncolors; palette_saved_alpha_ncolors = surface->format->palette->ncolors;
if (palette_saved_alpha_ncolors > 0) {
palette_saved_alpha = SDL_stack_alloc(Uint8, palette_saved_alpha_ncolors); palette_saved_alpha = SDL_stack_alloc(Uint8, palette_saved_alpha_ncolors);
for (i = 0; i < palette_saved_alpha_ncolors; i++) { for (i = 0; i < palette_saved_alpha_ncolors; i++) {
palette_saved_alpha[i] = surface->format->palette->colors[i].a; palette_saved_alpha[i] = surface->format->palette->colors[i].a;
@ -1217,6 +1218,7 @@ SDL_Surface *SDL_ConvertSurface(SDL_Surface *surface, const SDL_PixelFormat *for
} }
} }
} }
}
/* Transform colorkey to alpha. for cases where source palette has duplicate values, and colorkey is one of them */ /* Transform colorkey to alpha. for cases where source palette has duplicate values, and colorkey is one of them */
if (copy_flags & SDL_COPY_COLORKEY) { if (copy_flags & SDL_COPY_COLORKEY) {