diff --git a/coders/bmp.c b/coders/bmp.c index e3f09a35d0..4ba25c004e 100644 --- a/coders/bmp.c +++ b/coders/bmp.c @@ -1117,6 +1117,8 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); if (bmp_info.compression == BI_RLE4) bmp_info.bits_per_pixel<<=1; + if (BMPOverflowCheck(image->columns,bmp_info.bits_per_pixel) != MagickFalse) + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); extent=image->columns*bmp_info.bits_per_pixel; bytes_per_line=4*((extent+31)/32); if (BMPOverflowCheck(bytes_per_line,image->rows) != MagickFalse)