From 6dbae0a3300934b2fbb1c1cb9bcc616cd5073449 Mon Sep 17 00:00:00 2001 From: Cristy Date: Mon, 2 Feb 2026 19:52:42 -0500 Subject: [PATCH] fix potential memory leak --- MagickCore/cache.c | 2 +- coders/sixel.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) 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)