Fixed out of bounds access

This can happen if we try to blit from a surface with an unknown pixel format
This commit is contained in:
Sam Lantinga
2024-01-31 09:55:52 -08:00
parent 3c45544a14
commit 4b3c530dd1

View File

@@ -3374,7 +3374,8 @@ SDL_BlitFunc SDL_CalculateBlitN(SDL_Surface *surface)
if (dstfmt->Amask) {
a_need = srcfmt->Amask ? COPY_ALPHA : SET_ALPHA;
}
if (srcfmt->BytesPerPixel <= SDL_arraysize(normal_blit)) {
if (srcfmt->BytesPerPixel > 0 &&
srcfmt->BytesPerPixel <= SDL_arraysize(normal_blit)) {
table = normal_blit[srcfmt->BytesPerPixel - 1];
for (which = 0; table[which].dstbpp; ++which) {
if (MASKOK(srcfmt->Rmask, table[which].srcR) &&