Commit 808506dc4 for imagemagick.org

commit 808506dc4d0cbf3972ce0d57544a06209b65009c
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Fri Jun 5 09:35:29 2026 -0400

    https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-h7f2-f9cc-h2gv

diff --git a/coders/yuv.c b/coders/yuv.c
index fab63030c..04c2250fa 100644
--- a/coders/yuv.c
+++ b/coders/yuv.c
@@ -109,22 +109,26 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
   MagickBooleanType
     status;

+  ssize_t
+    x;
+
   Quantum
     *q;

-  size_t
-    length,
-    quantum;
+  unsigned char
+    *p;

   ssize_t
     count,
     horizontal_factor,
     vertical_factor,
-    x,
     y;

+  size_t
+    length,
+    quantum;
+
   unsigned char
-    *p,
     *scanline;

   /*
@@ -168,9 +172,9 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
   if ((interlace == UndefinedInterlace) ||
       ((interlace == NoInterlace) && (vertical_factor == 2)))
     {
-      interlace=NoInterlace;  /* CCIR 4:2:2 */
+      interlace=NoInterlace;    /* CCIR 4:2:2 */
       if (vertical_factor == 2)
-        interlace=PlaneInterlace;  /* CCIR 4:1:1 */
+        interlace=PlaneInterlace; /* CCIR 4:1:1 */
     }
   if (interlace != PartitionInterlace)
     {
@@ -194,17 +198,17 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
     scanline=(unsigned char *) AcquireQuantumMemory((size_t) (2UL*
       image->columns+2UL),(size_t) quantum*sizeof(*scanline));
   else
-    scanline=(unsigned char *) AcquireQuantumMemory(image->columns,(size_t)
-      quantum*sizeof(*scanline));
+    scanline=(unsigned char *) AcquireQuantumMemory(image->columns,
+      (size_t) quantum*sizeof(*scanline));
   if (scanline == (unsigned char *) NULL)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
   status=MagickTrue;
   do
   {
-    chroma_image=CloneImage(image,(size_t) ((ssize_t) image->columns+(ssize_t)
-      horizontal_factor-1)/(size_t) horizontal_factor,(size_t) (image->rows+
-      (size_t) vertical_factor-1)/(size_t) vertical_factor,MagickTrue,
-      exception);
+    chroma_image=CloneImage(image,(size_t) ((ssize_t) image->columns+
+      (ssize_t) horizontal_factor-1)/(size_t) horizontal_factor,(size_t)
+      (image->rows+(size_t) vertical_factor-1)/
+      (size_t) vertical_factor,MagickTrue,exception);
     if (chroma_image == (Image *) NULL)
       {
         scanline=(unsigned char *) RelinquishMagickMemory(scanline);
@@ -226,6 +230,7 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
         if (status == MagickFalse)
           {
             scanline=(unsigned char *) RelinquishMagickMemory(scanline);
+            chroma_image=DestroyImage(chroma_image);
             image=DestroyImageList(image);
             return((Image *) NULL);
           }
@@ -354,6 +359,7 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
         if (status == MagickFalse)
           {
             scanline=(unsigned char *) RelinquishMagickMemory(scanline);
+            chroma_image=DestroyImage(chroma_image);
             image=DestroyImageList(image);
             return((Image *) NULL);
           }
@@ -402,6 +408,7 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
           if (status == MagickFalse)
             {
               scanline=(unsigned char *) RelinquishMagickMemory(scanline);
+              chroma_image=DestroyImage(chroma_image);
               image=DestroyImageList(image);
               return((Image *) NULL);
             }
@@ -457,7 +464,8 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception)
       q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
       chroma_pixels=GetVirtualPixels(resize_image,0,y,resize_image->columns,1,
         exception);
-      if ((q == (Quantum *) NULL) || (chroma_pixels == (const Quantum *) NULL))
+      if ((q == (Quantum *) NULL) ||
+          (chroma_pixels == (const Quantum *) NULL))
         break;
       for (x=0; x < (ssize_t) image->columns; x++)
       {
@@ -610,10 +618,6 @@ ModuleExport void UnregisterYUVImage(void)
 static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image,
   ExceptionInfo *exception)
 {
-  const Quantum
-    *p,
-    *s;
-
   Image
     *chroma_image,
     *yuv_image;
@@ -627,6 +631,13 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image,
   MagickOffsetType
     scene;

+  const Quantum
+    *p,
+    *s;
+
+  ssize_t
+    x;
+
   size_t
     height,
     number_scenes,
@@ -636,7 +647,6 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image,
   ssize_t
     horizontal_factor,
     vertical_factor,
-    x,
     y;

   assert(image_info != (const ImageInfo *) NULL);
@@ -670,9 +680,9 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image,
   if ((interlace == UndefinedInterlace) ||
       ((interlace == NoInterlace) && (vertical_factor == 2)))
     {
-      interlace=NoInterlace;  /* CCIR 4:2:2 */
+      interlace=NoInterlace;    /* CCIR 4:2:2 */
       if (vertical_factor == 2)
-        interlace=PlaneInterlace;  /* CCIR 4:1:1 */
+        interlace=PlaneInterlace; /* CCIR 4:1:1 */
     }
   if (interlace != PartitionInterlace)
     {