Commit 578d94cf5 for imagemagick.org

commit 578d94cf5f90b5d77a727a4eecfaca46f1ac0b70
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Sun Oct 18 10:12:49 2026 -0400

    https://github.com/ImageMagick/ImageMagick/issues/9039

diff --git a/MagickCore/distort.c b/MagickCore/distort.c
index bea412b31..413e16c98 100644
--- a/MagickCore/distort.c
+++ b/MagickCore/distort.c
@@ -3191,10 +3191,14 @@ MagickExport Image *SparseColorImage(const Image *image,

   sparse_image=CloneImage(image,0,0,MagickTrue,exception);
   if (sparse_image == (Image *) NULL)
-    return((Image *) NULL);
+    {
+      coeff=(double *) RelinquishMagickMemory(coeff);
+      return((Image *) NULL);
+    }
   if (SetImageStorageClass(sparse_image,DirectClass,exception) == MagickFalse)
     { /* if image is ColorMapped - change it to DirectClass */
       sparse_image=DestroyImage(sparse_image);
+      coeff=(double *) RelinquishMagickMemory(coeff);
       return((Image *) NULL);
     }
   if (IsGrayColorspace(sparse_image->colorspace) != MagickFalse)
diff --git a/MagickCore/histogram.c b/MagickCore/histogram.c
index eb92bfc59..a90c3083f 100644
--- a/MagickCore/histogram.c
+++ b/MagickCore/histogram.c
@@ -1231,10 +1231,14 @@ MagickExport Image *UniqueImageColors(const Image *image,
     return((Image *) NULL);
   unique_image=CloneImage(image,cube_info->colors,1,MagickTrue,exception);
   if (unique_image == (Image *) NULL)
-    return(unique_image);
+    {
+      cube_info=DestroyHCubeInfo(image,cube_info);
+      return(unique_image);
+    }
   if (SetImageStorageClass(unique_image,DirectClass,exception) == MagickFalse)
     {
       unique_image=DestroyImage(unique_image);
+      cube_info=DestroyHCubeInfo(image,cube_info);
       return((Image *) NULL);
     }
   unique_view=AcquireAuthenticCacheView(unique_image,exception);
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index e1f2beab1..a43301eba 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -4280,7 +4280,10 @@ MagickExport MagickBooleanType ImportImagePixels(Image *image,const ssize_t x,
     }
   }
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
-    return(MagickFalse);
+    {
+      quantum_map=(QuantumType *) RelinquishMagickMemory(quantum_map);
+      return(MagickFalse);
+    }
   /*
     Transfer the pixels from the pixel data to the image.
   */
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index b3825f63a..c998f994a 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -2012,11 +2012,13 @@ MagickExport Image *LiquidRescaleImage(const Image *image,const size_t columns,
     (size_t) lqr_carver_get_height(carver),MagickTrue,exception);
   if (rescale_image == (Image *) NULL)
     {
+      lqr_carver_destroy(carver);
       pixel_info=RelinquishVirtualMemory(pixel_info);
       return((Image *) NULL);
     }
   if (SetImageStorageClass(rescale_image,DirectClass,exception) == MagickFalse)
     {
+      lqr_carver_destroy(carver);
       pixel_info=RelinquishVirtualMemory(pixel_info);
       rescale_image=DestroyImage(rescale_image);
       return((Image *) NULL);
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 7049894a4..5d0cb8168 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -1969,7 +1969,10 @@ MagickExport MagickBooleanType OrderedDitherImage(Image *image,
     if (fabs(levels[i]) >= 1)
       levels[i]-=1.0;
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
-    return(MagickFalse);
+    {
+      map=DestroyThresholdMap(map);
+      return(MagickFalse);
+    }
   status=MagickTrue;
   progress=0;
   image_view=AcquireAuthenticCacheView(image,exception);
diff --git a/MagickCore/visual-effects.c b/MagickCore/visual-effects.c
index 7c1962fd2..cc66d64e9 100644
--- a/MagickCore/visual-effects.c
+++ b/MagickCore/visual-effects.c
@@ -1246,6 +1246,7 @@ MagickExport Image *MorphImages(const Image *image,const size_t number_frames,
       if (status == MagickFalse)
         {
           morph_image=DestroyImage(morph_image);
+          morph_images=DestroyImageList(morph_images);
           return((Image *) NULL);
         }
       AppendImageToList(&morph_images,morph_image);