diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c index 03b3e2f48..cb220440a 100644 --- a/src/video/SDL_bmp.c +++ b/src/video/SDL_bmp.c @@ -394,12 +394,6 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) break; } - if (biBitCount >= 32) { /* we shift biClrUsed by this value later. */ - SDL_SetError("Unsupported or incorrect biBitCount field"); - was_error = SDL_TRUE; - goto done; - } - /* Create a compatible surface, note that the colors are RGB ordered */ surface = SDL_CreateRGBSurface(0, biWidth, biHeight, biBitCount, Rmask, Gmask, @@ -418,6 +412,12 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) goto done; } + if (biBitCount >= 32) { /* we shift biClrUsed by this value later. */ + SDL_SetError("Unsupported or incorrect biBitCount field"); + was_error = SDL_TRUE; + goto done; + } + if (biClrUsed == 0) { biClrUsed = 1 << biBitCount; }