diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c index 9244b28db..f471341fb 100644 --- a/src/video/SDL_bmp.c +++ b/src/video/SDL_bmp.c @@ -150,6 +150,8 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) biBitCount = SDL_ReadLE16(src); biCompression = BI_RGB; } else { + const int headerSize = 40; + biWidth = SDL_ReadLE32(src); biHeight = SDL_ReadLE32(src); /* biPlanes = */ SDL_ReadLE16(src); @@ -160,6 +162,10 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) /* biYPelsPerMeter = */ SDL_ReadLE32(src); biClrUsed = SDL_ReadLE32(src); /* biClrImportant = */ SDL_ReadLE32(src); + + if (biSize > headerSize) { + SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR); + } } if (biHeight < 0) { topDown = SDL_TRUE;