diff --git a/coders/bmp.c b/coders/bmp.c index e0724252ae2..d49a52b9f9f 100644 --- a/coders/bmp.c +++ b/coders/bmp.c @@ -2314,7 +2314,10 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image, bmp_colormap=(unsigned char *) AcquireQuantumMemory((size_t) (1UL << bmp_info.bits_per_pixel),4*sizeof(*bmp_colormap)); if (bmp_colormap == (unsigned char *) NULL) - ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); + { + pixel_info=RelinquishVirtualMemory(pixel_info); + ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); + } q=bmp_colormap; for (i=0; i < (ssize_t) MagickMin((ssize_t) image->colors,(ssize_t) bmp_info.number_colors); i++) {