diff --git a/MagickCore/cache.c b/MagickCore/cache.c index d0c63cebe1..fd141f2e8c 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -3813,7 +3813,7 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode, cache_info->storage_class=UndefinedClass; cache_info->length=0; ThrowBinaryException(ResourceLimitError,"PixelCacheAllocationFailed", - image->filename); + image->filename); } columns=(size_t) (length/cache_info->rows/packet_size); if ((cache_info->columns != columns) || ((ssize_t) cache_info->columns < 0) || diff --git a/coders/sixel.c b/coders/sixel.c index 697da0fe55..8b868189f6 100644 --- a/coders/sixel.c +++ b/coders/sixel.c @@ -401,7 +401,10 @@ static MagickBooleanType sixel_decode(Image *image,unsigned char *p, dmsx=imsx > attributed_ph ? imsx : attributed_ph; dmsy=imsy > attributed_pv ? imsy : attributed_pv; if (SetImageExtent(image,(size_t) dmsx,(size_t) dmsy,exception) == MagickFalse) - break; + { + imbuf=(sixel_pixel_t *) RelinquishMagickMemory(imbuf); + return(MagickFalse); + } dmbuf=(sixel_pixel_t *) AcquireQuantumMemory((size_t) dmsx,(size_t) dmsy*sizeof(sixel_pixel_t)); if (dmbuf == (sixel_pixel_t *) NULL) @@ -507,7 +510,10 @@ static MagickBooleanType sixel_decode(Image *image,unsigned char *p, dmsx=nx; dmsy=ny; if (SetImageExtent(image,(size_t) dmsx,(size_t) dmsy,exception) == MagickFalse) - break; + { + imbuf=(sixel_pixel_t *) RelinquishMagickMemory(imbuf); + return(MagickFalse); + } dmbuf=(sixel_pixel_t *) AcquireQuantumMemory((size_t) dmsx,(size_t) dmsy*sizeof(sixel_pixel_t)); if (dmbuf == (sixel_pixel_t *) NULL)