From: Cristy Date: Wed, 20 Jun 2018 00:27:19 +0000 (-0400) Subject: https://github.com/ImageMagick/ImageMagick/issues/1177 X-Git-Tag: 7.0.8-3~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ae04fa4be910255e5d363edebd77adeee99a525d;p=imagemagick https://github.com/ImageMagick/ImageMagick/issues/1177 --- diff --git a/coders/bmp.c b/coders/bmp.c index 178858477..78a6cbd7a 100644 --- a/coders/bmp.c +++ b/coders/bmp.c @@ -958,7 +958,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) if ((bmp_info.compression == BI_RGB) || (bmp_info.compression == BI_BITFIELDS)) { - pixel_info=AcquireVirtualMemory((size_t) image->rows, + pixel_info=AcquireVirtualMemory(image->rows, MagickMax(bytes_per_line,image->columns+256UL)*sizeof(*pixels)); if (pixel_info == (MemoryInfo *) NULL) ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); @@ -979,7 +979,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception) /* Convert run-length encoded raster pixels. */ - pixel_info=AcquireVirtualMemory((size_t) image->rows, + pixel_info=AcquireVirtualMemory(image->rows, MagickMax(bytes_per_line,image->columns+256UL)*sizeof(*pixels)); if (pixel_info == (MemoryInfo *) NULL) ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); @@ -1842,8 +1842,8 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image, /* Convert MIFF to BMP raster pixels. */ - pixel_info=AcquireVirtualMemory((size_t) bmp_info.image_size, - sizeof(*pixels)); + pixel_info=AcquireVirtualMemory(image->rows, + MagickMax(bytes_per_line,image->columns+256UL)*sizeof(*pixels)); if (pixel_info == (MemoryInfo *) NULL) ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);